NodeJS + expressJS + mongoDB环境搭建

1 comment , Tagged : , , ,

呃…..标题应该是“Ubuntu下NodeJS + expressJS + mongodb环境搭建”,位置不够显示!!!

接触nodejs后才学了点linux的命令,所以在搭建过程中遇到不少问题,中间补了一些linux的基本常识。环境搭建不断的装删折腾了N多次了,现在算是配得比较熟练了(貌似这没什么用!!)。最近刚装了ubuntu 11.10正式版,环境再次重新搭建了一次,趁现在还安装步骤比较清晰,记录一下搭建过程。

特别注意!!

  • linux新手,不了解权限问题(例如我),请不要随便用超级用户去执行以下命令,除非你直接用超级用户登录的!!
  • 有些安装过程可能会出现卡着不动(3-5分钟还是不动的话),ctrl+c停掉再多执行几次直到成功就可以了
  • 我使用的版本:nodejs 0.4.12,mongodb 2.0,express由npm自动安装

搭建前的准备工作

  • 1:搭建过程需要的依赖包

    sudo apt-get install g++ curl libssl-dev

  • 2. 安装git工具(如果你从git上获取源码的话):

    sudo apt-get install git-core

获取源码

  • NodeJS : git://github.com/joyent/node.git
  • ExpressJS: git://github.com/visionmedia/express.git (像我这种不懂手动安装的,就直接用npm安装)
  • mongoDB:我从官网下的,github地址童鞋们自己挖吧!!

NodeJS安装

假设环境我搭建在当前用户work目录下,首先进入解压出来的nodejs目录下,然后执行下面的命令操作(目录自己替换)

  • mkdir ~/work
  • ./configure –-prefix=$HOME/work/node
  • make
  • make install

上面等它执行完毕就算安装成功了,然后设置下环境变量,这样就不用每次开启终端都要进入到特定目录才能执行node命令。(PS:环境变量设置非必要步骤,只是方便之后的使用、操作)

  • echo ‘export PATH=$HOME/work/node/bin:$PATH’ >> ~/.profile
  • echo ‘export NODE_PATH=$HOME/work/node:$HOME/work/node/lib/node_modules’ >> ~/.profile
  • source ~/.profile

到这里最基础的nodejs环境就搞定了,你可以执行”node -v”看下node版本号(前提是你设置了环境变量且更新了,要不你就得到bin目录下去执行了)。

安装NPM,ExpressJS

NPM是nodejs的包管理,帮你下载、管理一些nodejs相关组件什么的。我们先回到work目录,然后执行下面命令

  • curl http://npmjs.org/install.sh | sh
  • npm install express -verbose

先是安装npm,然后用npm下载配置express,-verbose参数用于查看详细的安装信息,如果在某个地方卡太久不动,就停了重新执行。命令成功后,我们进入work/node_modules/express目录执行npm install -d安装一些相关的依赖项,同理,如果卡太久不动,就重新多执行几次。

接下来依然是设置环境变量,把$HOME/work/node_modules/express/bin加到$PATH里,执行express -v能看到版本号就顺利安装成功了。

安装mongoDB

首先必须在系统根目录创建/data/db目录,步骤如下

  • mkdir /data/db -p
  • chown ‘获取权限的用户名(一般是当前用户名)’ /data/db

然后解压mongodb压缩包到work目录下(假设解压后的目录名为mongodb-2.0),把$HOME/work/mongodb-2.0/bin添加到环境变量$PATH下。

最后我们试运行一下,执行mongod命令开启服务,新开终端执行下面命令(注意环境变量的问题)

  • mongo
  • db.foo.save({a:’1′})
  • db.foo.findOne()

如果没报什么错,到这里就算“搞定”啦!!

测试代码我就不写了,参考下面给出的网址就可以了。以上步骤nodejs+express的代码我试运行都可以正常运行,MongoDB就还没试过,只是在终端下可以操作而已,可能还需要配置些什么才能在代码里引用吧,这等做了实验后我再补上吧。

相关网址

1 Responses to this entry

  1. November 15th, 2011 at 15:56
    single seeker

    :roll: :roll: :roll: :roll: :roll: :roll:
    嫂子,就是嫂了,真滴好强大。。。

Drop Comments

大笑 感动 酷 无语 色咪咪 雷人 晕 怒 囧 打酱油 嘿嘿 yy