2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 将ejs转为html Node.js Express Web应用框架ejs修改为html

将ejs转为html Node.js Express Web应用框架ejs修改为html

时间:2019-03-26 09:30:07

相关推荐

将ejs转为html Node.js Express Web应用框架ejs修改为html

npm安装命令:npm install ejs -save

工程结构说明:

bin:存放可执行文件。

node_modules:存放package.json中安装的模块,在package.json添加依赖的模块并安装后,存放在这个文件夹下。

public:存放image、css、js等文件。

routes:存放路由文件。

views:存放视图文件或者说模版文件。

app.js:启动文件,或者说入口文件。

package.json:存储着工程的信息及模块依赖,当在dependencies中添加依赖的模块时,运行npm install ,npm会检查当前目录下的package.json,并自动安装所有指定的模块。

启动文件app.js//通过require()加载模块

varcreateError=require('http-errors');

varexpress=require('express');

varpath=require('path');

varcookieParser=require('cookie-parser');

varlogger=require('morgan');

varindexRouter=require('./routes/index');

varusersRouter=require('./routes/users');

//生成express实例

varapp=express();

//设置views文件夹为存放视图文件的目录

app.set('views',path.join(__dirname,'views'));

//设置视图模板引擎为ejs

app.set('viewengine','ejs');

//加载日志中间件

app.use(logger('dev'));

//加载解析json的中间件。

app.use(express.json());

//加载解析urlencoded请求体的中间件

app.use(express.urlencoded({extended:false}));

//加载解析cookie的中间件

app.use(cookieParser());

//设置public文件夹为存放静态文件的目录

app.use(express.static(path.join(__dirname,'public')));

//路由控制器

app.use('/',indexRouter);

app.use('/users',usersRouter);

//捕获404错误,并转发到错误处理器

app.use(function(req,res,next){

next(createError(404));

});

//错误处理

app.use(function(err,req,res,next){

res.locals.message=err.message;

res.locals.error=req.app.get('env')==='development'?err:{};

res.status(err.status||500);

res.render('error');

});

module.exports=app;

bin/www文件:#!/usr/bin/envnode

/**

*模块依赖关系

*/

varapp=require('../app');

vardebug=require('debug')('helloworld:server');

varhttp=require('http');

/**

*从Express存储环境中获取端口号

*/

varport=normalizePort(process.env.PORT||'3000');

app.set('port',port);

/**

*创建HTTP服务

*/

varserver=http.createServer(app);

/**

*监听所有的网络接口

*/

server.listen(port);

server.on('error',onError);

server.on('listening',onListening);

/**

*Normalizeaportintoanumber,string,orfalse.

*/

functionnormalizePort(val){

varport=parseInt(val,10);

if(isNaN(port)){

//namedpipe

returnval;

}

if(port>=0){

//portnumber

returnport;

}

returnfalse;

}

/**

*EventlistenerforHTTPserver"error"event.

*/

functiononError(error){

if(error.syscall!=='listen'){

throwerror;

}

varbind=typeofport==='string'

?'Pipe'+port

:'Port'+port;

//handlespecificlistenerrorswithfriendlymessages

switch(error.code){

case'EACCES':

console.error(bind+'requireselevatedprivileges');

process.exit(1);

break;

case'EADDRINUSE':

console.error(bind+'isalreadyinuse');

process.exit(1);

break;

default:

throwerror;

}

}

/**

*EventlistenerforHTTPserver"listening"event.

*/

functiononListening(){

varaddr=server.address();

varbind=typeofaddr==='string'

?'pipe'+addr

:'port'+addr.port;

debug('Listeningon'+bind);

}

修改ejs扩展名为HTML

app.js文件修改varejs=require('ejs');

......

app.engine('html',ejs.__express);

app.set('viewengine','html');

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。