node.js入门(一)搭建一个简单的服务
1、先在项目下新建一个server.js,任何浏览器和服务器的通讯都是通过http来完成的,所以先引入http模块(这是一个系统模块)
const http = require('http')
2、既然引入了那就要使用它,通过他的createServer()方法创建服务;创建服务之后还要添加监听的端口,这样才知道你找的是谁,监听端口使用listen()方法
const http = require("http") var server = http.createServer(function (req,res) { console.log("你来了") }) server.listen(8080)
这时在小黑窗运行服务node server.js,然后在浏览器访问localhost:8080,可以看到小黑窗输出了“你来了”,但是浏览器一直在转圈圈,那是因为服务器没有向浏览器返回任何内容
3、想要浏览器显示内容也很简单,createServer()回调函数有两个参数,分别是request和response,request是前端请求的数据,而response就是服务器向浏览器返回的内容
对上面的代码做一点点修改
const http = require("http") var server = http.createServer(function (req,res) { res.write('返回前端的数据'); res.end(); }) server.listen(8080)
res.write();向前端输出内容、写内容
res.end();结束
此时在小黑窗重启服务,然后再浏览器访问localhost:8080,可以在浏览器看到显示了“返回前端的数据”的乱码内容,添加 res.writeHead(200, {'Content-Type': 'text/plain;charset=utf-8'});
至此,一个简单的服务已经完成
4、但是这时我们访问任何路径都是返回“返回前端的数据”,正确的应该是根据浏览器的请求来返回内容,这时request参数派上用场了
打印req可以看到一坨东西,我们只用url就行了,拿到url就可以根据地址来返回数据了
const http = require("http") var server = http.createServer(function (req, res) { switch (req.url) { case '/news.html': res.write("news"); break; case '/article.html': res.write("article"); break; default: res.write("404"); break } res.end() }) server.listen(8080)
重启服务可以看到浏览器访问localhost:8080、localhost:8080/news.html、localhost:8080/article.html,浏览器输出的内容不同了
至此一个简单服务已经完成了