最近在看很早之前就看过的一个nodejs教程,主要是从零搭建一个前后台node项目的博客系统,在公交上通勤无聊就拿出来看看,当时看的比较粗,可能是工作上有了一些沉淀,这次看的时候发现了很多细节,例如为什么要这样切分模块,为什么要把业务逻辑进行抽离,怎么使用vscode进行nodejs程序的调试等。虽然很基础,但是还想记录一下,毕竟talk is cheap,能写下来或者给别人讲一遍,才说明自己真的明白了。所以记录一下这个过程…
前言
我个人喜欢短小一些的博文,特别是长时间在通勤路上或者一些碎片的时间,我都喜欢看一些技术博客。长时间下来,我发现掘金啊,segment default上有一类博文我就特别钟爱:篇幅不长,内容切分成多个章节,一个章节只阐述一个或者一类的知识点,我不知道是不是写博客也是在遵守单一原则
这样一方面我可能在10分钟看完一个内容,就可以去忙别的事情了,有一个commit的节点。再就是下次还可以接着看后面的内容,不需要回忆之前的内容,内容相对独立。
所以这个系列,我也打算这样尝试一下,分成几个不同的章节,一个章节很简单的写一个内容…
本篇幅主要的技术点
[✔] 使用node原生http模块搭建http-server
[✔] 使用nodemon处理热加载
[✔] 使用cross-env处理不同操作系统环境变量(通过nodejs的process全局变量的process.env.NODE_ENV就可以获取)
[❌] 使用querystring处理get请求的参数
[❌] 使用promise的方式获取post请求body参数的获取
[❌] 使用es6 Class的方式定义响应数据的基础格式,然后对成功响应和失败响应extends基础格式
[❌] mySql常用操作汇总
[❌] nodejs链接本地mysql数据库响应客户端请求
[❌] 登陆校验/登陆信息存储
[❌] nodejs链接redis数据库
[❌] nginx的配置反向代理
[❌] 日志管理
[❌] 信息安全(sql注入/xss攻击/md5信息加密)
初始化项目
1 | mkdir blog // 创建项目目录 |
- 项目安装一些插件
- cross-env适配window和macos等操作系统,设置环境变量
- nodemon本地开发阶段帮你监听文件修改并热更新/线上环境常使用pm2来做进程守护和多线程任务,充分利用硬件的性能
这样就生成了一个项目的目录,现在我们修改一下package.json中项目的入口文件
1 | { |
修改package.json中项目的主入口
1 | { |
设置环境变量
- 在package.json中使用cross-env设置NODE_ENV可以设置环境变量,然后再使用的地方可以根据nodejs提供的process全局变量上的process.env.NODE_ENV获取当前运行的环境变量
- 通常根据这个环境变量可以控制本地数据库和线上数据库,本地开发的ip和上线后部署服务器的ip等。
写npm脚本
1 | "scripts": { |
使用nodejs起一个httpserver
1 | // 第一步:引入http模块 |
vscode debug调试nodejs代码
- 配置debug的文件入口

- 在相应的代码中大断点就可以调试了
总结
到此为止,我们就在不使用框架的前提下,搭建了一个http-server,可以通过cross-env设置NODE_ENV来配置nodejs内置的process.env.NODE_ENV环境变量,并且可以使用nodemon做本地开发时候的热更新;如果在开发过程中遇到问题,也可以使用vs-code内置的debug方式进行断点调试;这样一个简单的server开发环境就搭建好了…