赞
踩
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。
Node.js底层用C++实现的,大部分模块都使用JavaScript编写,含大量的内置模块,使得程序可以脱离Apache、Nginx、IIS等web服务器,作为独立的服务器运行;
node.js优点
node.js 和 Java比较
快速搭建node原生服务器
var http=require("http"); //引用http模板
var server = http.createServer(function(req,res){
//request:请求对象 response:响应请求
response.setHeader("content-type","text/html;charset=utf-8")
res.end("hello world");
});
//指定服务器运行的端口
server.listen(3000,function(err){
if(!err){
console.log("服务器启动成功") }else{
console.log(err); }
});
运行后在浏览器中输入http://localhost:3000 回车 -->则会弹出hello word字样
模块引用 如 var http=require("http");
3.1.1让Web服务器响应和处理不同路径
var http = require('http'); //require 引用内置模块http var url = require('url'); //require 引用内置模块url http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain'}); //设置头信息 var pathname = url.parse(req.url).pathname; //把请求网址交给url 对象处理 var bodyStr =""; //定义一个变量,用来存储要输出的内容 if(pathname==="/"){ //如果是首页 bodyStr = 'Hello World\n'; }else{ bodyStr = req.url; //如果是其他路径 } res.end(bodyStr); //输出内容 }).listen(9527, '127.0.0.1'); //绑定IP 和端口 console.log('Server running at http://127.0.0.1:9527/'); //控制台输出提示
启动这个范例的服务,然后在浏览器中输入localhost:9527和localhost:9527/other可以看到期望的效果。
再改变一下业务需求,首页显示不变,增加一个/about关于页面,显示一些联系信息,其他页面就提示404 not found。随着请求路径的增长,用if判断的方式对代码组织很不友好,下面改用对象来尝试一下
3.1.2可配置的路径
var http = require('http'); //require 引用内置模块http var url = require('url'); //require 引用内置模块url var webPath = { //许可的路径 "/":"Hello World\n", "/about":"ID:z3f\nQQ:10590916" } http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain'}); //设置文件头信息 var pathname = url.parse(req.url).pathname; //把请求网址交给url 对象处理 //如果访问路径没有被webPath 指定就是Not found var bodyStr = webPath[pathname] || "Not found! \n"+req.url+" was not found on this server."; res.end(bodyStr); //输出内容 }).listen(9527, '127.0.0.1'); //绑定IP 和端口 console.log('Server running at http://127.0.0.1:9527/'); //控制台输出提示
运行代码之后,通过图中会发现之前请求的/other路径现在提示Not found,这是因为我们没有把它放到许可列表中。
将404错误页面放在子目录server下,这样分离的好处是,如果只改变404.html文件的提示内容,那么服务器不用做任何改动,甚至重启都不用, 便利很多,减少了维护成本。
如下图所示,该404设计,在错误提示页面显示了一些公 益信息。
var msgOf404 = require('./22-5.json') var http = require('http'); //require 引用内置模块http var url = require('url'); //require 引用内置模块url var fs = require('fs'); //require 引用内置模块fs var webPath = { //许可的路径 "/":"Hello World\n", "/about":"ID:z3f\nQQ:10590916" } var on200 = function(req, res, bodyStr){ res.writeHead(200, { 'Content-Type': 'text/plain'}); //设置文件头信息 res.end(bodyStr); //对客户端输出内容后结束 } var on404 = function(req, res){ fs.readFile("server/404.html", "utf-8", function (err, file) { //用内置fs 对象读取文件 res.writeHead(404
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。