nodeJs探究系列之起步构建

这个demo会持续更新,源码 去看看源码

最近在研究nodejs,由于有了php的底子,很多东西都比之前好理解了。先练习一个demo

var express = require('express')
var app = express()
var handlebars = require('express3-handlebars')     // 模版引擎
    .create({defaultLayout: 'main'})
app.engine('handlebars', handlebars.engine)     // 设置使用handlebars引擎
app.set('view engine', 'handlebars')
app.set('port', process.env.PORT || 3000)       // 监听哪个端口
app.use(express.static(__dirname + '/public'))      // 设置静态目录
var fortune = require('./lib/fortune')      // 引入模块

app.get('/', function (req, res) {
    res.render('home')      // 设置渲染模块。render是handlebars的语法,默认帮着添加上了res.type('text/plain')类型
})
app.get('/about', function (req, res) {
    res.render('about', {fortune: fortune.getFortune()})    // 将参数传递过去
})
app.use(function (req, res, next) { // 这里用的是use,中间件,在找不到的时候走这个
    res.status(404)
    res.render('404')
})
app.use(function (err, req, res, next) {    // 这里也是use,第一个参数添加了err,服务器错误的时候在这里捕获
    res.status(500)
    res.render('500')
})
app.listen(app.get('port'), function () {       // 这里设置监听,app.get('port')是获得当前选定的port
    console.log('listening' + app.get('port'))
})

handlebars

这里是用的handlebars引擎,然后创建了默认模版'main',用app.engine('handlebars', handlebars.engine)设置引用这个引擎。关于handlebars引擎,另写一篇文章介绍。

配置形态文件目录

app.use(express.static(__dirname + '/public'))这个中间件设置静态目录,就是在根目录__dirname后面加上创建的文件夹public,然后访问静态文件直接按这个走了就。

传递参数

res.render('模版', {}) 后面的json为传递过去的参数,在页面里面直接调用<\blockquote>{{fortune}}<\/blockquote>即可

随机浏览