一、Node特点
- 基于Chrome V8引擎
- 单线程
- 使用JavaScript开发后端代码
- 非阻塞的IO
二、Common规范
nodejs规范遵循CommonJs规范
新建一个server文件夹以及server/user.js、server/Demo.js两个文件。
在终端进入server文件夹,可执行文件:
三、创建一个http server
在二步骤的基础上,修改Demo.js文件:
let user = require('./User');
console.log(`username:${user.userName}`);
console.log(`I'm ${user.userName},I say ${user.sayHello()}`);
let http = require('http'); //加载http模块
let server = http.createServer((req,res)=>{
res.statusCode = 200;
res.setHeader("Content-Type", "text/plain; charset=utf-8");
res.end("Hello,Node.js")
}).listen(3000,'127.0.0.1', () => {
console.log("服务器已经运行,请打开浏览器,输入http://127.0.0.1:3000/来进行访问")
})
终端执行命令node Demo.js开启服务:
访问网址:
四、创建一个web容器,可以访问到HTML内容
在上述的项目文件下补充:
|—server
|————Demo.js
|————index.html
文件具体内容分别为:
1、Demo.js
// let user = require('./User');
// console.log(`username:${user.userName}`);
// console.log(`I'm ${user.userName},I say ${user.sayHello()}`);
let http = require('http'); //加载http模块
let url = require('url');
let util = require('util');
let fs = require('fs');
let server = http.createServer((req,res)=>{
// res.statusCode = 200;
// res.setHeader("Content-Type", "text/plain; charset=utf-8");
var pathname = url.parse(req.url).pathname;
fs.readFile(pathname.substring(1), function(err,data){
if(err){
res.writeHead(404,{
'Content-Type':'text/html'
});
}else{
res.writeHead(200,{
'Content-Type':'text/html'
})
res.write(data.toString());
};
res.end();
});
// console.log('url:'+req.url);
// console.log("parse:"+url.parse(req.url));
// console.log("inspect:"+util.inspect(url.parse(req.url)));
// res.end(util.inspect(url.parse(req.url)));
}).listen(3000,'127.0.0.1', () => {
console.log("服务器已经运行,请打开浏览器,输入http://127.0.0.1:3000/来进行访问")
})
2、index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>hello,测试一下,能否访问到</h2>
</body>
</html>
终端执行命令:node Demo.js
访问页面:
利用http模块调用第三方接口,此处不详述。