1、node安装,去官网下载安装包即可。
2、简单测试。在磁盘某个目录下(例如:D:\nodejs)新建一个JavaScript文件,即后缀为.js的文件,复制下来代码,在浏览器中输入http://127.0.0.1:8888/即可看到执行情况。
注意,同一目录下新建input.txt文件用来读取文件数据。
var fs = require("fs");
var data = fs.readFileSync('input.txt');
console.log(data.toString());
console.log("程序执行结束!");
fs.readFile('input.txt', function (err, data) {
if (err) return console.error(err);
console.log(data.toString());
});
console.log("程序执行结束!");
var http = require('http');
http.createServer(function (request, response) {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8888);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');
3、在项目目录下使用npm init命令初始化package.json.
4、在该项目中安装node的模块,“npm install xxx”会将xxx模块安装到当前路径下,“npm install -g xxx”则将xxx模块安装到当前用户的全局位置。使用“npm helo install”可以查看install子命令的细节。要卸载一个模块,使用“npm uninstall xxx”,假如你是全局安装,则使用“npm uninstall -g xxx”。
在使用npm安装某个模块时,它会自动解决依赖。
注意:安装全局的模块需要配置环境变量才能使用。即-g命令全局安装Node.js模块后,需要设置环境变量NODE_PATH,否则在我们使用node命令启动某个应用时可能会报找不到指定的模块这种错误。要在NODE_PATH中添加多个模块路径,只需用“;”分隔开即可。
5、安装mime模块,加载html页面的不同类型文件(css,js)相应。npm install mime
6、安装ejs模块,使用模版,进行页面动态响应。npm install ejs
7、实例,读取本地html文件响应,代码如下,读取图片不需要转字符串。
var http = require('http');
var fs = require('fs');
var url = require('url');
var path = require('path');
var mime=require('mime');
var ejs = require('ejs');
http.createServer(function (request, response) {
// 解析请求,包括文件名
var pathname = url.parse(request.url).pathname;
//输出请求的文件名
//从文件系统中读取请求的文件内容
fs.readFile(pathname.substr(1), function (err, data) {
if (err) {
// HTTP 状态码: 404 : NOT FOUND Content Type: text/plain
response.writeHead(404, {'Content-Type': 'text/html'});
// 发送响应数据
response.end("NOT FOUND Content");
}else{
var fileTmpMime=path.basename(pathname);
var resMime=mime.getType(fileTmpMime);
response.writeHead(200,{"Content-Type":resMime});
//发送响应数据
if(resMime.indexOf("image") >= 0){
response.end(data);
}else if(resMime.indexOf("/html") >= 0){
var context = {name:'李建成'};
//替换模版中的内容,返回替换后的html字符串
var tmpHtml=ejs.render(data.toString(), context);
//使用替换后的html内容响应请求。
response.end(tmpHtml);
}else{
response.end(data.toString());
}
}
});
}).listen(8888);
8、安装express 模块,npm install express
9、测试实例代码
// 引入 express 模块
var express = require('express');
// 创建 express 实例
var app = express();
// 响应HTTP的GET方法
app.get('/', function (request, response) {
response.send('Hello World 李建成!');
});
// 监听到8000端口
app.listen(8888, function () {
console.log('Hello World is listening at port 8888');
});