http模块、fs模块
http模块
nodejs的特点之一就是模块化,而http就是创建一个服务器
var http = require("http");
这个代码表示引入了一个http模块,有了这个模块就可以创建一个服务器对象。
var http = require("http");
http.createServer(function (req, res) {});
这个方法就创建的了一个服务器;方法发参数是一个回调函数,这个回调函数有两个参数,第一个参数是前端也就是用户端向后端发送的网络请求,第二个参数是后端向前端返回的数据。前端每访问一次这个IP端口就会调用一次这个函数。
var http = require("http");
var app = http.createServer(function (req, res) {
if (req.url == "/app") res.end("<h1>Hello, world!</h1>");
});
app.listen(8081);
req.url是用户向服务器发送的网址,也就是说用户在浏览器上输入服务器的(ip:端口号/app),就能访问到res.end方法发送的内容。
在vs-code中找到这个js文件,鼠标右键
点击在集成终端打开
弹出这个界面,然后输入node (这个文件的名字)后按enter。这个服务器就开启了。
然后再系统设置的网络中找到IPv4地址,这个地址就是服务器的IP
再浏览器上输入这一行就可以访问到res.end的内容。这个前面的192.168.6.150是服务器的IP,:8081是端口号,也就是上面app.listen(8081);这一行代码监听的数字,/app就是向服务器发送的req.url。
因为res.end发送的是 <h1>Hello, world!</h1>
,所有浏览器会把这个解析成h1标签。
fs模块
fs模块是用于操作服务器文件的模块,我们可以再用户发起网络请求后将文件发送给用户端。
var http = require("http");
var fs = require("fs"); //请求一个fs模块
var app = http.createServer(function (req, res) {
fs.readFile("./canvas.html", function (err, data) {
if (req.url == "/") {
res.end(data);
} else {
res.end("404 Not Found");
}
});
});
app.listen(8081);
在获取到这个fs模块后,我们可以在服务器里面调用这个fs.readFile方法。这个方法就是读取文件的,它有两个的参数,第一个是文件路径;第二个参数是一个回调函数,函数也有两个参数,第一参数是请求出错时吵产生的数据,第二个参数时请求成功时产生的数据。请求成功就把这个文件解析成二进制码,就是第二个参数。
url是"/"
url不是"/"
转载自:https://juejin.cn/post/7125378947717529614