nodejs教程:安装express及设置app.js文件
express.js是nodejs的一个MVC开拓框架,而且支持jade等多种模板。下面简朴来说说express的安装和app.js文件的设置,然后在此后的教程中一步一步行使express.js搭建个谈天室。 安装express.js假如你安装了npm,安装变得很简朴,只必要在终端中运行下面的代码即可:
-g代表安装到NODE_PATH的lib内里,而-d代表把相依性套件也一路安装。假如沒有-g的话会安装今朝地址的目次(会成立一个node_modules的文件夹),你可以透过以下指令来较量两者的差异:
假如没有npm,那么我可以行使github来git下来最新的express。
这样就成立了一个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');
而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中。 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却不知道各行代码的寄义了。 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |