打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
nodejs入门
nodejs入门之安装
分类: Javascript nodejs2013-11-14 11:02 315人阅读 评论(0)  举报
在官网下载安装包,windows系统可以下载mis安装包,双击自动安装即可,默认安装到C盘program files目录下。完成之后要添加系统变量右键我的电脑->高级系统设置->高级,在用户变量中path项中添加nodejs的安装路径,使用’;‘隔开,然后点击新建输入变量名NODE_PATH变量值C:\Program Files (x86)\nodejs\node_modules,也就是node_modules在系统中的路径。在nodejs文件夹中新建 test.js文件,输入 console.log(’right‘)保存。在控制台中执行该文件,
如果输入right则说明安装成功。
nodejs入门之基础HTTP请求
分类: nodejs Javascript2013-11-14 11:03 1160人阅读 评论(0)  举报
新建一个js文件,姑且命名为index.js,输入如下代码:
[javascript] view plaincopy
var http = require('http');
http.createServer(function(request, response){
response.writeHead(200,{'Content-Type' : 'text/html'});
response.write('hello world!');
response.end();
}).listen(8888);
第一行请求nodejs的HTTP服务模块,第二行使用http的createServer方法创建一个服务,这个方法会返回一个server对象,该对象有一个listen方法,带一个参数表示端口号。可以监听一个端口。
createServer可以接受一个函数作为参数,该函数会被自动添加到request事件中,并且接受两个参数request(请求)和response(答复)。在上面的代码中并没有用到request,因为没有请求的细节需要处理。writeHead()返回一个请求状态和http请求的类型,write()用于发送http请求的主体类容,之后调用end()完成响应。
在控制台输入node 根目录+\index.js,按下enter,在浏览器中查看127.0.0.1:8888,可以发现浏览器中有'hello world!'。
nodejs使用nodejs创建简单的静态文件服务器
分类: Javascript nodejs2013-11-18 14:59 3450人阅读 评论(0)  举报
在开始之前,应该好好规划一下项目的文件目录了。我的目录结构如下:
assets放置网站的静态文件css,js,img等;common存放项目的配置文件和一些通用文件;server存放服务处理文件,将要创建的静态文件服务就是放在此目录中; tpl放置的是模板文件也就是网页文件。
文件的下载格式主要是由'Content-Type'的值决定的,要想下载的文件能够正常工作就应该正确的设置不同文件的'Content-Type'值。mime.js文件存放了一些常用mime值:
[javascript] view plaincopy
exports.mime = {
"html" : "text/html",
"css"  : "text/css",
"js"   : "text/javascript",
"json" : "application/json",
"ico"  : "image/x-icon",
"gif"  : "image/gif",
"jpeg" : "image/jpeg",
"jpg"  : "image/jpeg",
"png"  : "image/png",
"pdf"  : "application/pdf",
"svg"  : "image/svg+xml",
"swf"  : "application/x-shockwave-flash",
"tiff" : "image/tiff",
"txt"  : "text/plain",
"wav"  : "audio/x-wav",
"wma"  : "audio/x-ms-wma",
"wmv"  : "video/x-ms-wmv",
"xml"  : "text/xml"
};
先来看server.js和FServer.js的类容:
[javascript] view plaincopy
//  server.js
var config = require('./common/config');
var http   = require('http');
var fs     = require('fs');
var url    = require('url');
var path   = require('path');
var FServer   = require('./server/FServer');
function index(){
var indexPath = config.ui + '/index.html';
fs.exists(indexPath, function(exists){
if( !exists ) {
throw err;
} else {
fs.readFile(indexPath, function(err, data){
if (err) {
throw err;
} else {
function onRequest(req, res){
// 取得文件路径
var pathname = url.parse(req.url).pathname;
// 获取文件扩展名(包含前置.)
var extname = path.extname( pathname );
var type = extname.slice(1);
// 获取下载文件在磁盘上的路径,
var realPath = config.root + pathname;
if ( extname === '' ) {
res.writeHead(200, {'Content-Type':'text/html'});
res.write(data);
res.end();
} else {
FServer.filesLoad(realPath, type, req, res);
}
}
http.createServer(onRequest).listen(config.port);
}
})
}
})
}
exports.index = index;
// FServer.js
var fs   = require('fs');
var mime = require('../common/mime').mime;
function filesLoad(filePath, type, req, res){
fs.exists(filePath, function(exists){
if ( !exists ) {
res.writeHead(404, {'Content-Type': 'text/plain'});
// res.write();
res.end();
} else {
fs.readFile(filePath, 'binary', function(err, file){
if ( err ) {
res.writeHead(500, {'Content-Type': 'text/plain'});
// res.write();
res.end();
} else {
res.writeHead(200, {'Content-Type': mime[type]});
res.write(file, 'binary');
res.end();
}
});
}
})
}
exports.filesLoad = filesLoad;
上面引入了nodejs的内置模块http、fs、url、path,config和FServer是自定义模块,要读取文件首先要知道文件在磁盘上是否存在,还应当知道文件的类型才能达到想要的效果。运行程序可以发现css和javascript都下载正确,并且css效果在页面上正确渲染(javascript还没有写效果)
nodejs入门之使用nodejs展示一个网页
分类: nodejs Javascript2013-11-18 14:54 3129人阅读 评论(0)  举报
一个网页的内容其实就是一段字符串,response.write()可以接受一个字符串作为参数,所以很明显只需要把一个网页的内容作为参数传递给response.write()即可。例如:[javascript] view plaincopy
<span style="white-space:pre">  </span>var http = require('http');
http.createServer(function(req, res){
var html = '<html>'
+'<head>'
+'<title>nodejs</title>'
+'</head>'
+'<body>'
+   'hello world! 1234'
+'</body>'
+'</html>';
res.writeHead(200,{'Content-Type' : 'text/html'});
res.write(html);
res.end();
}).listen(8888);
在浏览器地址栏输入127.0.0.1:8888查看结果,打开控制台,可以发现网页的类容已经全部包含在浏览器中。
一个网页一般会包含css样式文件和javascript脚本文件,再上一个示例中没有这两个文件。现在可以添加简单的css和javascript文件查看效果:
[javascript] view plaincopy
<span style="white-space:pre">  </span>var http = require('http');
http.createServer(function(req, res){
var html = '<html>'
+'<head>'
+'<title>nodejs</title>'
+'<link rel="stylesheet" type="text/css" href="./bootstrap/css/bootstrap.min.css" />'
+'<script type="text/javascript" src="./bootstrap/js/bootstrap.min.js"></script>'
+'</head>'
+'<body>'
+   'hello world!hello world! 1234'
+'</body>'
+'</html>';
res.writeHead(200,{'Content-Type' : 'text/html'});
res.write(html);
res.end();
}).listen(8888);
会发现css文件和javascript文件都没有被正确下载。这是因为这段代码中规定的'Content-Type'都是'text/html'类型,而且所有的response内容都相同,当然就看不到想要的效果。
我们知道css样式和javascript脚本有多种不同的引入方法,css样式可以使用外联样式、内部样式和内联样式,javascript可以使用外联和内部两种,既然外联不能正确显示,那么可以尝试其他方法。通过测试可以发现css内部样式和内联样式都可以在网页上看到效果,javascript同样。
[javascript] view plaincopy
<span style="white-space:pre">  </span>var http = require('http');
http.createServer(function(req, res){
var html = '<html>'
+'<head>'
+'<title>nodejs</title>'
+'<style type="text/css">'
+'body{color:red;}'
+'</style>'
+'</head>'
+'<body>'
+   'hello world! 1234'
+'</body>'
+'</html>';
res.writeHead(200,{'Content-Type' : 'text/html'});
res.write(html);
res.end();
}).listen(8888);
可以看到浏览器中的文字显示为红色。
但是这两种方式都不是现代web开发所提倡的。现代web开发提倡css样式和javascript使用外联的方式,以方便管理和重用。css文件和javascript文件都是静态文件,我们可以尝试建立一个简单的静态文件服务,这样就可以正确的在网页中使用外联文件了。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Node.js开发手册(二)
javascript – 如何使用FormData将文件发送到Nodejs并让Node发回确认消息?
Windows环境下轻松搭建NodeJs服务器
Node服务器
Node.js基础入门第七天
KindEditor 4.x 在线编辑器常用使用方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服