手机版

nodejs构建本地http服务器教程

时间:2021-09-05 来源:互联网 编辑:宝哥软件园 浏览:

因为我不做任何与php相关的事情,也懒得安装apache,所以我只是使用nodejs构建一个本地服务器进行测试。

Nodejs,是前端介入后端的利器。目前,nodejs的商业价值越来越大。

Nodejs其实很基础。从功能上讲,它既是apache又是php。像设置http服务器这样的功能最初是由apache打包的,但是nodejs需要我们手动设置。事实上,在实际应用中,我们可以使用现成的框架。但是在这里,我想手动构建它,加深对http server的理解。

我们的节点执行下面的文件,我将其命名为http.js。它将创建一个httpServer并监听3000个端口。

var PORT=3000var http=require(' http ');var URL=require(' URL ');var fs=require(' fs ');var mine=require('。/my’)。类型;var path=require(' path ');var server=http.createServer(函数(请求,响应){ var pathname=URL . parse(request . URL)。路径名;var realPath=path.join('assets ',pathname);//console . log(realPath);var ext=path . ext name(real path);ext=ext?ext.slice(1) :“未知”;fs.exists(realPath,函数(exists) { if(!存在){ response.writeHead(404,{ ' Content-Type ' : ' text/plain ' });响应。写入('在此服务器上找不到此请求URL '路径名');response . end();} else { fs.readFile(realPath,‘binary’,函数(err,file){ if(err){ response . write head(500,{ ' Content-Type ' : ' text/plain ' });response . end(err);} else { var content type=mine[ext]| | ' text/plain ';response.writeHead(200,{ ' Content-Type ' : Content Type });response.write(文件,‘binary’);response . end();} });} });});server . listen(PORT);console.log('服务器在端口: '端口上运行。' ');上面我们还介绍了一个我自己写的mine.js。它存储名称-值对,用于定义与不同后缀的文件对应的返回方法:

exports . types={ ' CSS ' : ' text/CSS ',' gif': 'image/gif ',' html': 'text/html ',' ico': 'image/x-icon ',' jpeg': 'image/jpeg ',' jpg': 'image/jpeg ',' js': 'text/javascript ',' json': 'application/json ',' pdf ' :Fs模块用于读取文件,并提供读取文件的方法。事实上,如果你仔细研究文档,你会发现它有两种读取方法:同步和异步。方法fs.exists写为path.exists在网上很多文章中都有,现在建议写fs.exists,否则会报警:

需要注意的是,不仅浏览器访问html文件,链接的外部文件如js、css也会分别形成http访问。因此,http.createServer的回调实际上在一次页面访问中被多次执行。我们可以在控制台上看到:

这里没有增加默认访问index.html的功能,所以访问地址应该写在http://127 . 0 . 0 . 133603000/index . html。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:nodejs构建本地http服务器教程是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。