[node入坑]1.Nodejs + Mongodb + Express

公良修竹
2023-12-01

听说不会nodejs,就不是合格的前端,也不是合格的全栈,吓得我赶紧开始学node,node安装就不说,node都没装,那就真不是搞前端了

1.安装express

其实就是按着最新的官方文档点这里来就行;建议直接用express生成器吧,相对方便点,可以直接生成项目

1.安装全局的(方便随时创建嘛)

$ npm install express-generator -g

2.创建项目(推荐加-e 就是ejs 模板,默认是jade[看着很怪异])

$ express myapp

   create : myapp
   create : myapp/package.json
   create : myapp/app.js
   create : myapp/public
   create : myapp/public/javascripts
   create : myapp/public/images
   create : myapp/routes
   create : myapp/routes/index.js
   create : myapp/routes/users.js
   create : myapp/public/stylesheets
   create : myapp/public/stylesheets/style.css
   create : myapp/views
   create : myapp/views/index.jade
   create : myapp/views/layout.jade
   create : myapp/views/error.jade
   create : myapp/bin
   create : myapp/bin/www

3.然后安装所有依赖包

$ cd myapp 
$ npm install

4.启动这个应用(MacOS 或 Linux 平台):

$ DEBUG=myapp npm start

Windows 平台使用如下命令:

> set DEBUG=myapp 
> npm start

2.安装mongodb

为了方便我直接安装在了腾讯云上 ubuntu14.04

1.使用官网教程点这里

直接几句命令执行后就好了

  • Import the public key used by the package management system
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
  • Create a list file for MongoDB.
echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
  • Reload local package database.
sudo apt-get update
  • Install the MongoDB packages.
sudo apt-get install -y mongodb-org
  • Start MongoDB.
sudo service mongod start
  • Verify that MongoDB has started successfully
[initandlisten] waiting for connections on port <port>
  • Restart MongoDB
sudo service mongod restart

我安装好的版本是3.4.2

2.配置远程访问

新版本 mongodb设置大致如下:

$ mongo
$ use admin
$ db.createUser({
    user:'root',
    pwd:'xxxx',
    rolses:[{ role: 'readAnyDatabase', db: 'admin' }]
    })
$ db.auth('root','xxxx')
$ use dataname
$ db.createUser({
    user:'user1',
    pwd:'xxxx',
    rolses:[{ role: 'readWirte', db: 'dataname' }]
    })
$ db.auth('user1','xxx')

修改配置文件

sudo vi /etc/mongod.conf
net:
    port: 27017
    bindIp : 0.0.0.0

security:
    authorization: enabled #(注意前面必须有个空格,括号请忽略)

然后重启一下

sudo service mongod restart

3. 安装mongoose 连接 Mongodb

怎么安装mongoose就不说了,npm install mongoose --save就行了
连接字符串'mongodb://username:password@host/databasename'包含了账号密码域名和数据库名
在你喜欢的地方加上下面这段就行了

mongoose.connect('mongodb://username:password@host/databasename');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function (callback) {
   console.log('db service connected.')
 });

有点很坑的是,比如你出现这个问题,你新建model的时候,比如
mongoose.model('yourtablename',yourScheMa);它绑定的表示yourtablenames,但是你可以指定哪个表

4.写个小程序测试下

这篇文章吧,可以写出个小demo;它搭建那块选择性看吧,跟我这边差异还挺大,反正前几步完成了,后面就开始写代码的时候就不会出错了。注意一点,每次修改非模板文件都需要重启

npm start
 类似资料: