⑴ 如何用express nodejs 创建web服务器
简单的三步走抄:
安装所需环境..或者模块等
安装node 环境
指定文件夹,初始化
安装express
编写入口代码
指定入口文件,例如:app.js
编写代码:
varexpress=require('express');
varapp=express();
app.get('/',function(req,res){
res.send('HelloWorld!');
});
app.listen(3000,function(){
console.log('Exampleapplisteningonport3000!');
});
启动
打开命令行,切换到目录下
命令:node app即可启动
⑵ 如何用nodejs搭建web服务器
创建一个记事本将下面的代码复制进去 保存为app.js
var http = require('http');//引入响应头
http.createServer(function (request, response) {
//参数一是与请求相关的对象
//参数二是与响应有关的对象
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8888);//监听端口
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');
以下以我的电脑上的路径为准 我是将app.js 保存在E:\NODE这个文件夹下面
接下来就是运行了打开cmd
第一步:E:
第二步:cd NODE //CD是 命令行改变目录的命令
第三步:node app.js
这个是运行效果接下来访问localhost:8888就可以看到hollo word
建议多看一些node的模块 比如 express和session mysql之类的模块
⑶ nodejs内置模块有哪些
一、Express框架
前面的章节已经介绍过了,可以使用npm来安装node.js模块。具体操作请参照以前写的nodejs概论。
Express是一个nodejs的web开源框架,用于快速的搭建web项目。其主要集成了web的http服务器的创建、静态文本管理、服务器URL地址请求处理、get和post请求处理分发、session处理等功能。
使用方法,在cmd中打开你所想创建web项目的路径。然后输入
Express appname
即可创建一个名为appname的web项目。控制台打印结果
在jada文件中是可以使用for循环和if判断语句的,可以让你体会类似JSP的<%%>和php的<php></php>在网页上输出数据的快感。
三、forever模块
nodejs作为http服务器,需要确保服务顺利进行,要注意一下两点:
1.后台服务运行,监控运行日志,以及http运行日志;
2.确保项目的正常安全运行,Node.js的启动命令node,很大程度无法满足运行需求;
Node.js的forever模块在第二点就可以起到很大的作用,同时其拥有监控文件更改、自动重启等功能。
forever模块的使用方法有两种:1.在命令行中使用
forever -l forever.log -o out.log -e err.log app.js
-l forever.log -o out.log -e err.log分别指定了forever的运行日志,脚本流水日志,脚本运行错误日志,启动后将在本文件夹下产生out.log、err.log文件。
2.在编码中require forever模块使用。
四、Socket.IO模块
Socket.IO模块主要功能是将WebSocket协议应用到所有浏览配厅器。主要用于实时的长连接多求情项目中。
例如:在线联网游戏,实时聊天、实时股票查看、二维码扫描登录掘粗等。
安装方法仍然是在cmd在中输入npm install socket.io
如何使用Socket.IO来创建一个项目。
需要分别实现服务端和客户端的逻辑:
先创建一个服务端的node.js脚本index_server.js
var app = require('http').createServer(handler)//创建服务器app
, io = require('socket.io').listen(app)//引用socket.io模块监听app
, fs = require('fs')//引用文件处理模块
app.listen(80);//指定app监听的端口,第二个参数127.0.0.1可省略
function handler (req, res) {
fs.readFile(__dirname + '/index.html', function (err, data) { if (err) {
res.writeHead(500); return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}
io.sockets.on('connection', function (socket) {
socket.emit('判卖镇news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
其中,socket.emit()为Socket发送消息的函数,第一个参数表示发送消息的key值,第二个参数为发送消息的内容,也就是发送的数据。
Socket。on()为Socket接收消息的函数,第一个参数为接收消息的可以值,第二个参数为回调函数,其中回调函数携带的参数为接收消息所发送的数据。
接下来web前端如何使用javaScrit 来连接Socket服务器。
新建一个index_client.html
<script type="text/javascript" src="socket.js"></script>
<script type="text/javascript"> var socket = io.connect('http://localhost');//创建本地sock连接
socket.on('news',function (data) {//Socket接收news消息时执行回调函数 console.log(data);
socket.emit('my other event',{my:'data'});
});</script>
<script type="text/javascript" src="socket.js"></script>加载已经安装好的Socket.io的本地JavaScrit文件。
var socket = io.connect('http://localhost');因为端口为80,所有这里可以不端口号
socket.on('news',function (data){}//客户端接收news消息成功后,发送my other event消息到服务端,发送的消息内容为json对象{my:'data'}
接下来只需要运行服务端的index_server.js文件来启动socket服务
效果:在浏览器输入http://127.0.0.1按F12调出浏览器的控制台console即可看见打印出了一个object对象。
执行完毕后可能会报错:catnot find mole socket.io,说明你的socket.IO没有安装,或已经安装并配置为全局,但你的安装路径并没有配置到在path中,所有无法引用。
你可以选择配置path,或者安装到项目内。这里建议安装到你的项目目录下,而不是简单粗暴的配置为全局。先卸载npm uninstall socket.io 进入指定目录后安装node index_server.js
socket.io详细请参阅 http://cnodejs.org/topic/50a1fcc7637ffa4155b5a264
五、request模块
request模块为开发者提供了一种简单访问HTTP请求的方法。request还支持HTTPS的访问方法。
安装:
npm install requset
request模块基本上覆盖了所有的HTTP请求方式如GET,POST,HEAD,DEL等。但其最基本的两个方法是request.get()和request.post().
get和post的区别
get:
1.使用get向服务器发出和接收的请求会附在url之后。类似:http://www..com?id=1221&name=5555这个url中传递了两个参数,一个为id,一个为name。
2.get请求不能超过1024个字节。
post没有限制,也不会附在url上。
接下来做一个简单的实例
get实例:
首先新建一个服务器app_get.js
var http= require("http");
http.createServer(function(req,res){
res.writeHead(200,{'content-Type':'text/plain'});
res.end('Hello world
'+req.method);
}).listen(1337,"127.0.0.1");
再建一个发送求情的request_get.js文件
var request=require('request');
request.get("http://127.0.0.1:1337",function(error,response,result){
console.log(result);
});
在CMD中运行app_get.js,运行成功后,再打开一个cmd(之前的cmd不要关闭),执行request_get.js文件。
执行后的结果如下
hello world
GET
可以看出,通过request.get方法访问
http://127.0.0.1:1337 返回的结果就是res.end()的参数
post实例:
和上面一样,先新建服务器app_post.js
var http= require("http"),
querystring=require('querystring');
http.createServer(function(req,res){ var postData=""; //开始异步接收客户端post的数据
req.addListener("data",function (postDataChunk) {
postData += postDataChunk;
}); //异步post数据接收完毕后执行匿名回调函数
req.addListener("end",function(){ var postStr=JSON.stringify(querystring.parse(postData));
res.writeHead(200,{'content-Type':'text/plain'});
res.end(postStr+'
'+req.method);
});
}).listen(1400,"127.0.0.1");
然后再新建一个request_post.js
var request=require("request");
request.post('http://127.0.0.1:1400',{form:{'name':'ermu','book':'node.js'}},function (error,response,result) {
console.log(result);
})
像上面一样在cmd中执行后显示的结果如下:
D:
odejssrc
equest>node request_post.js
{"name":"ermu","book":"node.js"}
POST
request post提交了一个json对象{"name":"ermu","book":"node.js"}而服务器接通过获取该POST数据,然后返回客户端,同时将http请求方式也响应到客户端。
request post参数可以有两种传递方式。
其中,第一种是将url和form表单的数据作为json参数在request post传递。举例如下:
request.post('url':'http://127.0.0.1:1400',form:{'name':'ermu','book':'node.js'}},function (error,response,result) {
console.log(result);
})
另一种是将url和form作为两个参数,上面的实例就是使用这种方法。
六、 Formidable模块
该模块的目的是为了解决文件上传。
在原生的node.js模块中,提供了获取post数据的方法,但是并没有直接获取上传文件。
⑷ nodejs如何部署到服务器上
有几种部署方式,由项目复杂度而定。
最简单的。
简单的小网站可以直接使用Node.js作为web服务器,不做前后端分离,使用后端模板填充数据,代表框架express。
如果要做负载均衡或者响应多端请求,那么采用前后端分离。前端代码可以放在CDN或nginx这类静态服务器上,前端向Node.js服务端发送rest请求。代表框架koa。
如果业务更加复杂,有较多的CPU密集型任务需要执行,那么Node.js后面再接一层服务器(Java、Python)来处理。
另外由于Node.js是单线程进程,一旦出错就会崩溃,导致服务端无法访问。所以部署Node.js的时候需要使用
PM2
,这样可以在Node.js程序崩溃之后及时重启,当然还有其它好处,比如灰度部署、负载均衡等。⑸ 如何用nodejs搭建web服务器
使用Node.js搭建Web服务器是学习Node.js比较全面的入门教程,因为实现Web服务器需要用到几个比较重要的模块:http模块、文件系统、url解析模块、路径解析模块、以及301重定向技术等,下面我们就一起来学习如何搭建一个简单的Web服务器。
作为一个Web服务器应具备以下几个功能:
1、能显示以.html/.htm结尾的Web页面
2、能直接打开以.js/.css/.json/.text结尾的文件内容
3、显示图片资源
4、自动下载以.apk/.docx/.zip结尾的文件
5、形如http://xxx.com/a/b/ , 则查找b目录下是否有index.html,如果有就显示,如果没有就列出该目录下的所有文件及文件夹,并可以进一步访问。
6、形如http://xxx.com/a/b, 则作301重定向到http://xxx.com/a/b/ , 这样可以解决内部资源引用错位的问题。
引入需要用到的几个模块:
创建服务并在指定的端口监听:
在创建服务的时候需要传递一个匿名函数processRequest 对请求进行处理,processRequest接收2个参数,分别是request和response, request对象中包含了请求的所有内容,response是用来设置响应头以及对客户端做出响应操作。
请求处理函数中有几个重点需要说一下:
对于路径中有中文的,浏览器会自动进行编码(英文不变,中文会变),因此在接收到地址后,需要对地址进行解码,否则最后得到的路径和真实路径不相符,
当访问路径不是以具体的文件结尾,并且不是以/结尾,则需要通过重定向加上/,表示当前目录,否则当前路径下的静态资源会找不到
如果访问路径是目录,则列出该目录下所有文件及文件夹,并可以点击访问,为了让中文目录能正常显示,则还要在header中设置charset=utf-8
核心代码就这么多,大概140行左右,完整的代码已上传到github:https://github.com/git-onepixel/Node,
如果要运行demo,打开cmd切换到根目录,运行node start 即可。
⑹ 如何用命令行开启nodejs搭建web服务器
首先,需要安装nodejs,这个可以去官网下载,目前我本地安装的v0.12版本。
安装完成后可以通过命令行测试安装是否成功,输入:node -v,应该会显示当前安装node版本号。
本文中用到的模块,都是nodejs核心模块,不需要从外部下载,如果有需要,可以使用以下命令安装:npm install xxx。
开始
下一步,新建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;