当前位置: 首页 > 后端技术 > Node.js

Nodejs手动搭建Express项目

时间:2023-04-03 14:17:41 Node.js

俗话说好记性不如烂笔头。看了两天文档,打算把自己学到的写成一篇文章。安装全局模块npminstall-gexpressexpress-generatorsupervisor//express-generatorExpressApplicationGenerator//supervisor监控你对代码的修改,并自动重启Node.js,必须全局安装才能快速生成项目express-eblog//-e使用ejs模板引擎生成项目手动创建项目1.安装依赖npminitnpminstallexpressejs--save//项目结构blog├─app.js//入口文件├─package.json//项目依赖配置├─node_modules//存放项目的依赖库├─public//静态文件资源目录│├─images│├─js│└─styles└─views//查看文件(ejs模板或jade模板)2.编写入口文件//引用模块varexpress=require('express');varpath=require('path');varejs=require('ejs');varapp=express();app.set('views',path.join(__dirname,'views'));//设置视图文件目录app.set('viewengine','ejs');//设置模板引擎为ejsapp.use(express.static(path.join(__dirname,'public')));//配置静态资源目录//路由规则app.get('/',function(request,response){response.send('HelloNode.js')});app.listen(3000);//监听3000端口console.log('serverstartedatport3000');3.修改模板后缀。默认的ejs模板只支持渲染带有ejs扩展名的文件。你用的时候可能会觉得它的代码写的方法很不爽,我还是想以html的形式来写。这里可以使用engine注册模板引擎的功能,让他处理指定后缀名的文件/**把上面的app.set('viewengine','ejs')*改成**/app.set('视图引擎','html');//修改模板文件后缀为htmlapp.engine('.html',ejs.__express);//"__express",ejs模块的公共属性,表示要渲染的文件扩展名。接下来在控制台运行,看看浏览器访问http://localhost:3000是否成功输出到这里,项目已经初步搭建完成。4、路由模块化在根目录下新建routes文件夹//routes/index.jsvarexpress=require('express');varrouter=express.Router();//使用express.Router类创建模块化、可扩展的Mounted路由句柄//访问根路由渲染索引模板router.get('/',function(req,res){res.render('index');});module.exports=路由器;添加模板,在views文件夹下新建一个index.html模板(只是一个普通的html文件)并修改入口文件app.js//导入路由模块varrouter=require('./routes/index');app.use('/',路由器);删除app.js中写的路由。至此,整个项目已经搭建完成,大功告成。//app.js//引用模块varexpress=require('express');varpath=require('path');varejs=require('ejs');varapp=express();varport=process.env.PORT||3000;//导入路由模块varrouter=require('./routes/index');app.use('/',router);//设置视图文件目录app.set('views',path.join(__dirname,'视图'));//app.set('视图引擎','ejs');//设置模板引擎为ejsapp.set('viewengine','html');//设置模板引擎为htmlapp.engine('.html',ejs.__express);app.use(express.static(path.join(__dirname,'public')));//配置静态资源目录app.listen(port);console.log('serverstartedatport'+port);ps:第一次写文章,请多多指教。