天天看点

Nodejs+Extjs+Mongodb开发第一天 Nodejs环境搭建

我个人pc环境是ubuntu14+jdk7,所以下面的步骤及问题也是基于此进行及产生的。

这个安装的过程在网上有很多教程,这里就不详细讲了。

查看nodejs的版本,网上很多教程都写的是:

但一直node命令找不到的异常,使用以下命令执行成功:

终端显示:

经测试,ubuntu下nodejs的命令是nodejs,而windows平台的是node。

查看npm版本是

简单介绍:

在开发 node.js 实现的 http 应用时会发现,无论你修改了代码的哪一部份,都必须终止 node.js 再重新运行才会奏效。这是因为 node.js 只有在第一次引用到某部份时才会去解析脚 本文件,以后都会直接访问内存,避免重复载入。node.js的这种设计虽然有利于提高性能,却不利于开发调试,因 为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启。

supervisor 可以帮助你实现这个功能,它会监视你对代码的改动,并自动重启 node.js。

a) 全局安装 (我的选择)

b) 安装在当前文件夹下 

安装成功后,命令行会提示 npm info ok

-g代表安装到node_path的lib里面,而-d代表把相依性套件也一起安装。如果沒有-g的话会安装目前所在的目录(会建立一个node_modules的文件夹)。

通过以下命令了查看supervisor的帮助文档,

终端显示:

经查找后,发现npm在安装模块的时候,会把源码及执行文件分开。

注意:这里也是和网上的大部分教程不一样的地方,网上的教程都说源码及执行文件都是放在/usr/local/lib/node_modules 目录下的,估计是npm版本不同的原因。

找到并查看supervisor的执行文件:

看到supervisor的介绍,我们很容易得知,这个小模块的主要功能有两个:

1、关闭正在执行的项目

2、启动前面关闭的项目

这里报的错误是没有找到node,而且很清楚地发现执行文件的第一行使用的命令是!/usr/bin/env node ,回想前面查看nodejs版本的命令。项目启动用到的应该是nodejs本身的命令nodejs,

于是将这一行修改如下进行尝试,问题得到解决。

终端显示supervisor的帮助如下:

注意:根据帮助文档,查看supervisor的命令是supervisor -v 。命令中的v是大写,安装过程中我发现windows下小写也行,但在我的ubuntu14的环境下必须是大写。

在安装完后,express与supervisor一样,也存在nodejs命令不符合的问题,同样的方式找到执行文件进行修改此命令即可。

安装完了express,如果版本是4.0及以上的话,还要安装另外一个模块,express才能使用。

cd 到test目录的上级目录,执行以下命令

执行完后,回到项目目录查看:

package.json :

app.js:

bin/www:

cd到test目录下

终端显示异常:

还是node命令的问题,修改package.json 文件中的

bin/www文件中的

执行成功

Nodejs+Extjs+Mongodb开发第一天 Nodejs环境搭建

npm是什么东西呢?大部分的java程序员都使用过maven。而npm的职能与maven相似,是nodejs的包管理工具,可以使用它来下载包、查看文件等功能用express创建的应用程序是一个符合commonjs规范的一个nodejs包npm执行的时候会读取当前目录的package.json文件,这个也就是我上面那个bug出现的原因执行npm start其实是执行package.json中的script对应的对象中的start属性所对应的命令。

所以其实如果吧package.json中的start改成test或者其他字符串,然后你在终端敲上npm test/或者其他,程序照样会运行 。

其实package.json就是一个配置文件,只是我们之前用的xml格式,但是在nodejs用的是json可以,简单容易理解。从package.json我们可以看出来npm start其实执行的是./bin/www里面是创建一个服务器然后监听3000端口,所以我们可以在浏览器中通过输入"localhost:3000"来访问应用程序。

npm start 是启用的 /bin/www文件里的脚本 

如果你想用nodejs 启动服务 可以在app.js中添加如下代码 

注意:上面的语句得加在module.exports = app;之前。

得到同样的结果。

 使用supervisor进行热部署的执行方便调试

这里解决的过程就不详细说了,重点是--exec 'node'这个,会发现supervisor执行的还是node命令,而不是nodejs。修改supervisor源文件目录下的supervisor.js文件

再次执行成功,项目修改后,nodejs也会自动重启。

一开始选择的是nodeclipse,但用起来确实不怎么完善。于是选择webstorm。

关于ide使用及nodejs的使用,在以后使用的过程中会再发文章记录。