微信公号Node开发「零」之项目建立
前段时间帮忙做一个微信后台开发,并且用了Node + Mongo,做一次实践,后面又添加了一些功能,整个项目开始变得系统,做了一段时间,对于整个系统的把握变得清晰,Node的使用也有了些思路,过程中遇到很多问题,虽然最后项目作废了,但是笔记还是要做的,这里就记录下开发中遇到的问题。
NodeJS
首先需要理清楚,Node不是一门新的语言,使用的语法是JavaScript的核心语法,而Node只是JS代码运行环境。
参考下图(作者@BusyRich)可以更清晰的理解Node的运行过程。
运行过程如下:
- V8引擎解析JavaScript脚本
- 解析后的代码调用Node API
- libuv负责Node API的执行。它将不同的任务分配给不同的线程,形成一个Event Loop,以异步方式将任务的执行结果返回给V8引擎。
- v8引擎再将结果返回给用户。
之前在再谈setTimeout与setInterval中讨论过JavaScript中的Event Loop,Node中的Event Loop机制有机会可以看下。
所以对于前端开发者来说,上手NodeJS会比较容易些,运行方式也简单
- 一是在终端下打开Node运行环境
node
命令,输入console.log("hello node");
回车即可看到hello node
, - 二是新建example.js,内容为
console.log("hello node");
,在终端下node example.js
命令执行JS文件,hello node
再次出现。
熟悉python的同学是不是觉得与python的运行方式撞脸了。
言归正传,回到项目上,这里用Express + MongoDB组合。
Express
Express默认使用Jade作为前端模板,但在建立项目时,提供选择ejs的参数,我习惯使用ejs,所以现在创建项目,wechatGame。express -e wechatGame
项目创建完成后,该目录下出现/wechatGame
目录,结构如下1
2
3
4
5
6
7
8
9
10
11
12
13
14
15|-- app.js //主文件
|-- bin //启动文件
| `-- www
|-- package.json //配置文件
|-- public //公共文件
| |-- images
| |-- javascripts
| `-- stylesheets
| `-- style.css
|-- routes //路由
| |-- index.js
| `-- users.js
`-- views //页面
|-- error.ejs
`-- index.ejs
项目建好,接着安装所需的依赖,编辑package.json,除了已有的包,还需要添加操作MongoDB的包,我选用了mongoose,所以最终的packa.json内容如下1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 "name": "wechatGame",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.15.1",
"cookie-parser": "~1.4.3",
"debug": "~2.2.0",
"ejs": "~2.4.1",
"express": "~4.13.4",
"morgan": "~1.7.0",
"serve-favicon": "~2.3.0",
"mongoose": "~4.4.15"
}
}
在项目目录下安装npm install
安装完成,启动项目,express4.0之后,启动方式由node app.js
变成npm start
。
我用的是4.13.4,所以npm start
启动服务器
打开浏览器,访问localhost:3000
hello express
觉得不能把理解的东西讲得透彻,面面俱到,迟迟不敢下手,写了删,删了写,关于写作还有很多东西需要学习,行文思路清晰,文字表达精炼,这些都是需要不断的写来锻炼的。
Anyway,done is better than perfect!
参考:
作者: leeon
来源: https://leeon.im
链接: https://leeon.im/wechat-node-0th/
本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可