目录:
- 1、什么Linux服务器集群管理面板好用?
- 2、微信公众号如何设置ipv6访问
- 3、node js 怎么安装express
什么Linux服务器集群管理面板好用?
Linux服务器集群管理面板好用的有云帮手,可以批量管理多个云服务器,全面支持所有主流云服务提供商,同时兼容Windows、CentOS、Ubuntu、Debian、OpenSUSE、Fedora等主流云服务器操作系统,不限主机数量和站点数量,绝对满足你的要求了。
微信公众号如何设置ipv6访问
微信公众号如何设置ipv6访问,这样设置
随着IPV4地址耗尽,运营商开始回收并推进IPV4大内网地址,基于IPV4的传统内网映射、动态域名即将失效;但同时我们也要看到,运营商的IPV6推进计划基本快要完成了,现在我们的宽带、手机流量、各大门户网站,其实都已经支持IPV6了,今天这篇文章,我们不谈原理,直接告诉大家如何配置使用IPV6.
一、网站配置IPV6
为域名配置AAAA记录,A记录为IPV4地址,AAAA记录为IPV6地址,IP地址在我们购买VPS时会告诉我们。
为我们的web服务配置IPV6监听,比如我所使用的APPNODE面板需要单独为IPV6配置监听服务。
node js 怎么安装express
安装express.js
如果你安装了npm,安装变得很简单,只需要在终端中运行下面的代码即可:
复制代码代码如下:
npm install express -gd
-g代表安装到NODE_PATH的lib里面,而-d代表把相依性套件也一起安装。如果没有-g的话会安装目前所在的目录(会建立一个node_modules的文件夹),你可以透过以下指令来比较两者的不同:
复制代码代码如下:
npm list -g
npm list
如果没有npm,那么我可以使用github来git下来最新的express。
好了,现在你可以通过express testapp来建立express实例。以下是示例:
复制代码代码如下:
cd ~
express testapp
cd testapp
node app.js
这样就建立了一个testapp的nodejs应用,而app.js是默认的应用主js。下面来详细的说说app.js中的各项配置。
引入模块
复制代码代码如下:
var express = require('express');
var app = module.exports = express.createServer();
require()是node.js提供的函数,可以让你引入其他模块以调用模块的函数和变量,默认下node.js会在$NODE_PATH和目前js所在目录下的node_modules文件夹下去寻找模块。require也可以用来载入自己写的模块哦~这样涉及到node.js的模块机制,后面有机会就在介绍。
第二行的express.createServer()就是在建立server,而中间的module.exports也是涉及到node.js的模块机制,以后再说。
express的app.js的详细配置说明
express.js继承自connect模块,所以如果你的node_modules文件夹下没有connect模块也是不行的。
设置views路径和模板
我们再来看下面两行:
复制代码代码如下:
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
上面两行是设置views文件夹,即模板文件夹,__dirname是node.js里面的全局变量,即取得执行的js所在的路径,另外__filename是目前执行的js文件名。所以,app.set(‘views', __dirname + ‘/views');是设置views的文件夹。
而app.set('view engine', 'jade');是设置express.js所使用的render engine。除了Jade之外,express.js还支持EJS(embedded javascript)、Haml、CoffeScript和jQuery template等js模板。
app.use配置
复制代码代码如下:
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
express.bodyParser()是Connect内建的middleware,设置此处可以将client提交过来的post请求放入request.body中。
express.methodOverride()也是Connect内建的,可以协助处理POST请求伪装PUT、DELETE和其他HTTP methods。
app.router()是route requests,但express.js的官方文件是这句可有可无,并且经过测试还真的是这样,不过还是写上吧。
express.static()也是一个Connect内建的middleware来处理静态的requests,例如css、js、img文件等。所以static()里面指定的文件夹中的文件会直接作为静态资源吐出来。
app.configure设置
复制代码代码如下:
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
express.errorHandler()是Connect内建的middleware来协助处理例外。这里也揭露了app.configure()的令一个用法,第一个参数是node.js的环境设定,如此我们就可以设定在不同的执行环境使用不同程度的dump。PS:node.js是透过NODE_ENV这个环境变数来取得环境设定,e.g.:在命令列,NODE_ENV=production node app.js就可以进入production环境。
路由和request的处理
ok,下面是nodejs处理request的内容:
复制代码代码如下:
app.get('/', function(req, res){
res.render('index', {
title: 'Express'
});
});
上面的代码意思是,get请求根目录则调用views文件夹中的index模板,并且传入参数title为“Express”,这个title就可以在模板文件中直接使用。
在express中要处理post请求,需要使用app.post()。如下面的代码:
复制代码代码如下:
app.post('/add', function(req,res){
res.render('add', {
sum: req.body.a + req.body.b
});
});
前面我们提到了req.body是express.bodyParser()把POST参数处理后的结果。
另外除了get和post方法,还有app.all()意思就是所有的请求处理。
添加listen,启动nodejs服务器
复制代码代码如下:
app.listen(3000);
console.log(
"Express server listening on port %d in %s mode",
app.address().port,
app.settings.env);
到目前为止,我们就基本全明白了express配置了,也就不会像以前那样跟别人都写个hello world却不知道各行代码的含义了。
评论前必须登录!
注册