项目组织

项目组织

项目组织:项目文件、目录如何放置。

引题

但随着项目变复杂,发现一些缺点和不便:
1)每次新项目都要重要安装第三方依赖。 express debug body-parser mongodb ejs, 每次安装还需要想一想需要哪些库,漏安装。
2)每个程序员对项目组织理解和起名习惯不一样。 A程序员把html放到’views’文件夹下, 静态文件放到’static’。B程序员,‘www’,‘public’。
3)逻辑越来越多,app.js可能两三千行,难以维护。 可以nodejs模块化export和require,但跟上条问题一样,每个程序员但划分标准不一样。
4)跟上一条类似,有些代码 例如数据库代码(连接、异常、切换库) 非常重复。 想把重复代码抽离出来。
5)运行不方便,需要cd设置DEBUG环境变量。

有没有一个架构师把express相关常用的包整理好,项目组织整理好,项目组织整理好,搭建好项目框架,封装好,供其它普通程序员使用。

脚手架

脚手架:scaffold,基于核心内容加上相关生态,帮用户做一些自动操作。
express-generator:express生成器,是express生态的脚手架项目,帮助我们更加方便生成项目,适合中大型项目和公司协作开发。

安装脚手架 npm install express-generator -g 。 注意–global全局安装,安装之后可以在终端生成express命令。
1)如果报错没有permission权限,打开管理员权限终端在运行。 windows点击-cmd-右键以管理员权限打开。
2)完成express -h 可以看到帮助信息即为成功。 如果vscode里的终端不生效,到系统原生cmd powershell中试试。
3)安装成功,终端无法调用。原因,win用户的早版本powershellbug试试cmd。没反应试试重启终端。还不行的检查上图目录下有没有express.cmd和全局npm包(c:\users\xxx\appDate\roming\npm)是否在环境变量中。

创建项目
cd 想创建项目文件夹的父目录下
express --view=ejs 9expressGet 安装依赖cd [myapp]npm install就会自动根据同级目录下到package.json中依赖描述安装所有包。 3. 启动项目 普通运行npm startdebug级别日志:cmdset BEBUG=myapp:; npm start简写set DEBUG=; npm startps$env:DEBUG=’*’&npm start`。

脚手架生成项目组织的理解

  1. bin/www 项目入口。这个文件实质是js脚本。
  2. public 静态文件目录。因为没一个页面都可以引用。所以’公共的’。
  3. router 路由和视图函数(项目逻辑)
  4. views 模板
  5. app.js 项目代码的入口
  6. package.json 依赖描述。内置常用包,其它包数据库包仍需自己安装。

细节理解

  1. package.json 依赖
  • cookie-parse 操作cookie
  • http-errors 返回封装好的http错误响应。
  • morgan http日志库,debug日志库负责跟express框架相关,morgan跟http相关的日志。
    (https://www.npmjs.com/package/morgan
  1. 运行程序
    之前运行 node xxx.js
    原理在package.json中script属性里配置
    ‘npm start’ 等于 ‘node ./bin/www’
    作用是用更简短易于理解的npm命令取代node xxx.js。
    有的人可能觉得并没有简洁什么,但后期命令可能比较长
    node app.js -logpath C:\log\xx.log --view=ejs --DEBUG=*
    还可能有多种命令 正常运行,debug运行,编译的。
    npm不只是包管理工具,还是node命令管理工具。
  2. 项目入口
    app.js 里主要是express创建app实例,进行基础设置,导出app。
    bin/www 引入app对象,开启http server监听服务。
    相当于原来app.js里到内容 运行服务器到代码抽离出来。
    最终入口 bin/www
  3. 路由
    根级别路由在app.js中,导入了router/xxx.js的子路由。
    // 根级路由。
    // 把项目逻辑按大模块划分更清晰。例如users包括注册、登陆
    // 字符模块包括支付宝/微信/
    // 子路由 route/xxx.js 被注入到了总对象app中。
    优点,划分功能逻辑,适合大型项目开发。
    http://www.expressjs.com.cn/4x/api.html#router.route
  4. 报错
    主要看报错结论Error: xxx 和报错跟自己写的代码相关的。
    如果信息不足百度’express Errorxxx’如果想检查逻辑和变量信息,建议打断点的debug,但是vscode总会启动错误路径的其它商务js文件,无法正常debug。需要手动编辑vscode的debug文件。目录右键拷贝入口js文件的绝对路径,修改到配置文件的program值里面。
  5. 框架提供了基本架构,但是自己的业务逻辑可能需要其他包。

可能的报错

node find modules 未安装依赖
报错了一堆错 properbly not npm failt ,原因win7的powershell运行node xxx.js有问题。
显示成功,但项目文件夹内无内容。 原因,系统问题文件没创建成功,尝试再次运行。

相应状态码

常见的几种状态码

200 成功
3xx 重定向
4xx 服务器错误
5xx 服务器错误
常见
200 成功
301 重定向
403 无权限
404 找不到资源
500 服务器代码错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值