您的位置:首页 > 数据库 > Mongodb

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

2017-03-15 01:08 134 查看
听说不会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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息