nodejs当web服务器行不行

2020-11-29 14:14:36 字数 4399 阅读 8515

1楼:育知同创教育

可以呀使用node.js搭建web服务器是学习node.js比较全面的入门教程,因为实现web服务器需要用到几个比较重要的模块:

http模块、文件系统、url解析模块、路径解析模块、以及301重定向技术等,下面我们就一起来学习如何搭建一个简单的web服务器。

作为一个web服务器应具备以下几个功能:

1、能显示以.html/.htm结尾的web页面

2、能直接打开以.js/.css/.json/.text结尾的文件内容

3、显示**资源

5、形如http://***.***/a/b/ , 则查找b目录下是否有index.html,如果有就显示,如果没有就列出该目录下的所有文件及文件夹,并可以进一步访问。

6、形如http://***.***/a/b, 则作301重定向到http://***.***/a/b/ , 这样可以解决内部资源引用错位的问题。

引入需要用到的几个模块:

//http协议模块varhttp = require('http');//url解析模块varurl = require('url');//文件系统模块varfs = require("fs");//路径解析模块varpath = require("path");创建服务并在指定的端口监听:

//创建一个服务varhttpserver = http.createserver(this.processrequest.

bind(this));//在指定的端口监听服务httpserver.listen(port,function());

在创建服务的时候需要传递一个匿名函数processrequest 对请求进行处理,processrequest接收2个参数,分别是request和response, request对象中包含了请求的所有内容,response是用来设置响应头以及对客户端做出响应操作。

processrequest:function(request,response));response.end();return;}//添加默认的访问页面,但这个页面不一定存在,后面会处理pathname +="index.

html";ha***t =false;//标记默认页面是程序自动添加的}//获取资源文件的相对路径varfilepath = path.join("http/webroot",pathname);//获取对应文件的文档类型varcontenttype =this.getcontenttype(filepath);//如果文件名存在fs.

exists(filepath,function(exists));varstream = fs.createreadstream(filepath,);stream.on("error", function() );response.

end("");});//返回文件内容stream.pipe(response);}else);response.end("");}else}catch(e)response.

writehead(200, );response.end(html);}}});}

请求处理函数中有几个重点需要说一下:

对于路径中有中文的,浏览器会自动进行编码(英文不变,中文会变),因此在接收到地址后,需要对地址进行解码,否则最后得到的路径和真实路径不相符,

当访问路径不是以具体的文件结尾,并且不是以/结尾,则需要通过重定向加上/,表示当前目录,否则当前路径下的静态资源会找不到

如果访问路径是目录,则列出该目录下所有文件及文件夹,并可以点击访问,为了让中文目录能正常显示,则还要在header中设置charset=utf-8

核心**就这么多,大概140行左右,完整的**已上传到github:https://github.***/git-onepixel/node,

如果要运行demo,打开cmd切换到根目录,运行node start 即可。

nodejs 做web服务器合适吗

2楼:偏于一角

最好还是使用专业的web服务器比较好,建议你可以去web服务器厂商(比如正睿服务器、惠普服务器等)的**看看。

如何用nodejs搭建web服务器

3楼:失信人买机票网

node.js 是一个基于 chrome v8 引擎的 javascript 运行环境。 node.js 使用了一个事件驱动、非阻塞式

i/o 的模型,使其轻量又高效。node.js 的包管理器

npm,是全球最大的开源库生态系统。(nodejs官网上的介绍),正如官网上介绍的那样,nodejs确实很牛!怎么个牛法?看看下面的**就知道了。

//引入http模块

var http = require("http");

//设置主机名

var hostname = '127.0.0.1';

//设置端口

var port = 8080;

//创建服务

var server = http.createserver(function(req,res));

server.listen(port,hostname,function():$`);

});短短几行**就把一个简单的web服务器搭建完成了,为了验证效果,我们在浏览器请求

如何让 nodejs web服务器

4楼:善良的zxc先生

返回首页

');res.end();}}

httpserver.listen(8000);

//一个简单的nodejs服务,windows环境下先安装node.js.

//以上内容保存为demo.js,命令行工具在当前目录使用nodedemo.js通过127.0.0.1:8000访问.

5楼:

可以用express框架作为web服务的基础框架

如何用命令行开启nodejs搭建web服务器?

6楼:沉珂侧畔

开始下一步,新建js文件,可以命名为server.js,**如下:

var http = require('http');

var url = require('url');

var path = require('path');

var fs = require('fs');

var dir, arg = process.argv[2] || ''; // 命令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称

// 比如使用命令 node server debug,意思就是debug文件夹与server.js文件同级

// 且你想以debug文件夹启动web服务

http.createserver(function (req, res) {

var pathname = __dirname + url.parse(req.url).pathname;

nodejs自带的web服务器可以运行shell脚本吗

7楼:一骑当后

你好。可以运行 shell 脚本。

用 child_process.spawn() 方法,具体看文档你的采纳是我前进的动力,记得好评和采纳,互相帮助,如果你认可我的回答,敬请及时采纳.

如何用nodejs快速搭建web服务器

8楼:匿名用户

这种场景用json-server呀~9k star,不用写js好伐~typicode/json-server · github来跟我写个json, users.json,]}next

npm i json-server -g

next

json-server --watch users.jsonnext

~ curl http://localhost:3000/users -d id=foo\&pwd=foo_password

直接post id & pwd 到这个 json-server, 匹配的反回一个 json object, 一行 js 都没写

------

登录, 查找操作用 get 带上 id, pwd注册 or 修改, 用post or put, 会覆盖原有的域

web服务器有那些种类?各有什么优缺点

1楼 匿名用户 服务器的种类和功能 1 www服务器 www server www服务器也称为web服务器 web server 或http服务器 http server ,它是inter 上最常见也是使用最频繁的 web服务器有哪些 2楼 皮蛋粯子粥 目前最主流的三个web服务器是apache n...