npm install -g express
express -V
> express -e nodejsDemo
> cd nodejs-demo && npm install//安装依赖
node app.js
npm install -g supervisor
supervisor app.js
项目使用bower来管理各个插件包,所以在项目中需要将bower_components设置为静态资源的根目录。express默认的静态文件目录为public下,也可以设置多个静态文件目录。
//设定静态文件路径
app.use(express.static(path.join(__dirname, 'public')));
app.use('/bower_components', express.static(path.join(__dirname,'/bower_components')));
如果不使用path.join()方法则可以直接使用字符串相加
app.use('/bower_components', express.static(__dirname+'/bower_components'));
var routes = require('./routes/index');
var users = require('./routes/users');
var table = require('./routes/table');
app.use('/', routes);
app.use('/index', routes);
app.use('/users', users);
app.use('/table', table);
http://localhost:3000
http://localhost:3000/index
http://localhost:3000/users
http://localhost:3000/table
router.get('/', function(req, res, next) {
res.render('index', { title: 'aa' });
});
router.get('/', function(req, res, next) {
res.render('users', { title: 'users' });
})
router.get('/', function(req, res, next) {
res.render('table', { title: '部门111' });
})
上面第一块代码意思是,get请求根目录则调用views文件夹中的index模板,并且传入参数title为“aa”,这个title就可以在模板文件中直接使用。
var ejs = require('ejs');
再将app.set('view engine', 'ejs'); 变成
app.engine('.html', ejs.__express);
app.set('view engine', 'html');
若不修改view中页面,当引擎改为html引擎时,则将routes路由中的.ejs渲染写全文件名,如:
router.get('/', function(req, res, next) {
res.render('users.ejs', { title: 'users' });
})
若渲染文件原本就是.html文件则可以不用写后缀名。并且.html文件中依然可以写<%=title%>
这种类似的语法
2. 静态路由
添加主页路由
app.get('/', function(req, res) {
res.sendfile('./views/index.html');
});
//路径参数获取
app.get('/:name', function(req, res) {
var fileName = req.params.name;
//console.log('./views/'+fileName);
res.sendFile(fileName);
});
//安装
npm install -g supervisor
配置,在WebStorm中选择要Run–Edit Configurations
Working directory选择项目目录(supervisor会监控此目录内所有文件的改变自动重启)
具体内容详见[express.js]一文中,原文不定时更新(http://chen1218chen.github.io/2016/06/08/Express.js/)