前言在完成了上一篇的经济基础搭建之后,我们现在就正式开始编码吧!项目结构启动HTTP服务,首先创建/server/app.js文件,首先引入服务所需的模块。下面介绍两种启动HTTP服务的方法。1.使用Node.js内部模块httpvarhttp=require('http');http.createServer(function(request,response){//发送响应数据"HelloNode.js"response.end('HelloNode.js');}).听(8888);//监听8888端口//终端打印如下信息console.log('Serverrunningathttp://127.0.0.1:8888/');2.使用express框架本项目使用node.js的express框架启动一个HTTP服务器。express官网,有相应的简单教程,API等,大家可以自行查看constexpress=require('express'),//loadexpressmoduleapp=express();//启动一个网络服务器app.get('/',function(req,res){res.send('HelloNode.js');})constserver=app.listen(3000,function(){letport=server.address().port;console.log('applisteningathttp://%s:%s','localhost',port);});保存后,命令行进入app.js文件所在文件夹,运行命令nodeapp.js,然后浏览器访问http://localhost:3000,会看到返回'HelloNode.js'.MongoDB可视化工具Robomongo为了方便测试,我们首先需要向我们本地的MongoDB数据库中插入一些数据。为了方便使用,MongoDB还有Robomongo1.0.0,类似mysqlnavicat的图形化管理工具,下载地址:https://robomongo.org/download,下载安装即可。1、打开Robomongo,点击左上角的file->connect(快捷键ctrl+N),在弹出的框中点击create,创建连接。2、输入连接名称和地址名称,默认端口为27017,地址地址和端口一般不需要更改。这样就创建了名为test的MongoDB连接。3、MongoDB是用C++语言编写的,是一个基于分布式文件存储的开源数据库系统。MongoDB和通常的MySQL有一个很大的区别:4、我们先点击左边刚刚创建的测试连接,右击创建数据库,输入数据库名testDb点击create创建。5、在刚刚创建的testDb数据库上左键创建一个集合(也就是平时数据库中的table表),点击create创建用户集合成功。6、接下来我们开始向用户集合中插入数据:右击用户集合->insertdocumet(插入文档,即我们平时使用的sql数据库中的行)。7、MongoDB数据库中文档(每一行数据)的数据结构与JSON基本相同。集合中存储的所有数据都是BSON格式。BSON是一种类似于JSON的二进制存储格式,简称BinaryJSON。因此,我们在插入数据的时候,只需要以JSON格式输入我们要插入的数据即可。点击保存,保存并成功插入数据。{userName:'dodo',sex:18,sex:'female',job:'font-endEngineer'}8.双击用户集合可以看到我们刚刚插入的数据,MongoDB的主键会自动将_id字段设置为主键。开始连接数据库1.使用MongoDB原生API创建连接,直接在/server/app.js中输入如下代码varMongoClient=require('mongodb').MongoClient,DB_CONN_STR='mongodb://本地主机:27017/testDb';#数据库是testDbvarselectData=function(db,callback){//连接到user表varcollection=db.collection('user');//查询数据varwhereStr={"userName":'dodo'};collection.find(whereStr).toArray(function(err,result){if(err){console.log('Error:'+err);返回;}回调(结果);});}MongoClient.connect(DB_CONN_STR,function(err,db){console.log("连接成功!");selectData(db,function(result){console.log(result);db.close();});});2.本项目使用Mongoose配合MongoDB操作数据库。Mongoose是mongoDB的一个对象模型工具。是基于node-mongodb-native开发的mongoDB的nodejs驱动,可以在异步环境下执行。同时它也是一个mongoDB操作的对象模型库,封装了mongoDB增删改查文档等常用方法,让nodejs操作mongoDB数据库变得更加简单。//加载需要的模块constmongoose=require('mongoose');mongoose.Promise=require('bluebird');constSchema=mongoose.Schema;constUserSchema=newmongoose.Schema({username:String,//用户名sex:String,//性别age:Number,//Age},{collection:'user'})//注意这里一定要有collection,否则mongoose会在下面的model中给user加上后缀s.constModels={User:mongoose.model('user',UserSchema)};/***创建数据库名称并连接*连接到Mongod实例。*/constdbHost='mongodb://localhost/testDb';mongoose.connect(dbHost);constdb=mongoose.connection;db.on('error',function(){console.log('数据库连接错误。');});db.once('open',function(){console.log('数据库已连接。')});module.exports=Models;
