Window环境下Express框架+MonDodb数据库搭建服务器后台

Window环境下Express框架+MonDodb数据库搭建服务器后台

1、安装环境,需要安装nodejs,这个自行到nodejs官网上去下载安装,安装好后,可以利用npm命令是下载express框架,可以通过命令:npm install express-generator -g 进行全局安装,安装完成后既可以使用express框架了,这个安装很简单就不在详细解说。
2、使用express生成项目:进入到你要存放项目的目录下,shift+单击鼠标右键,弹出菜单选择“在此处打开命令窗口”,这时会弹出DOS窗口(就是黑色的框框了),利用express生成项目,在DOS窗口中输入express myExpressDemo,运行成功之后,express会自动生成一个一个以myExpressDemo为项目名的项目,进入这个项目可以看到如下图所示的文件:

这里写图片描述
1、package.json 这个可以说是模块管理包,项目信息和模块的版本号,其实你会发现在项目模块初始化的时候就是由这里的配置去查找生成的。
3、app.js 是项目的启动文件,可以说是项目的核心。主要写一些公共的功能。
4、bin 文件下有个无后缀的www文件,这是项目的入口文件,配置web服务端口和一些监听事件。
5、node_modules是项目的依赖的的文件模块,之后导入的包也会被放在其中,比如连接数据库的mongoose模块,后面会详细讲。
6、public 是项目的静态资源文件集,很容易看出图片、css文件、js文件都放在这里。
7、routes 是项目的路由模块,其中已经默认了index.js和user.js文件。在这里其实也包括一般后台语言中的控制器内容,当然在大的项目上是可以分离开来的。
8、views是项目的模版文件,是jade模版引擎,这个模版很简洁,但是坑也比较多,比如对空格的要求都非常严格,多一个少一个空格都会报错的,曾经踩过很多坑,其实它的性能也不是很高还不如用ejs呢。

3、配置express生成的项目:cd 进入到刚刚生成的项目中,使用express install初始化依赖模块,依赖模块初始化完成后,使用set DEBUG = myExpressDemo & npm start来启动web服务器。启动成功后,在浏览器中输入,localhost:3000,(express默认监听的端口号为3000),可以看到如下图结果说明web服务器运行成功了:

这里写图片描述

4、安装Mongodb数据库
 4.1、到官网(http://www.mongodb.org/downloads)上直接下载msi文件;
 4.2、简单的下一步安装就行;
 4.3、进入到Mongodb的安装目录下,一般默认安装路径为:C:/Program Files/下面,进入安装目录下的bin文件夹下面,在此处打开DOS窗口,输入mongod --dbpath f:\MongoDB\data\db命令,其中--dbpath后面的参数为Mongodb数据库存储数据的文件夹路径,必须在运行此命令之前手动将文件夹创建好,这个路径可以自定义,可以放在C、D及其他任何盘中,但建议最好放在每个盘的根目录下.正确运行此命令后的结果如下图所示:

这里写图片描述

4.4、接着运行bin目录下的mongo文件,双击即可运行,也可以打开一个cmd,进入到此路径下运行mongo命令,在浏览器中输入localhost:27017,即可看到如下图所示信息,说明mobgodb数据库安装成功。
这里写图片描述

4.5、最终mongodb安装目录如下图所示:
这里写图片描述

5、在node项目中使用Mongodb
5.1、进入到用express创建的项目根目录下,运行npm isntall mongoose -save,这个命令是用来安装连接mongodb数据库用到的连接模块。安装完成之后,打开项目中的app.js文件,在其中添加如下两句代码:
     1、导入mongoose模块:var mongoose = require('mongoose');
     2、创建数据库连接:mongoose.connect('mongodb://localhost/mydb') //连接本地数据库,其中mydb就是我们的数据库名称。
5.2、在项目根目录下创建schemas文件夹,这个是数据集模块,在模块下新建user.js文件,添加如下代码:
var mongoose = require('mongoose');
var userSchema = new mongoose.Schema({
    _id: String,
    userCode:String,
    userName:String,
    deptCode:String,
    deptName:String,
})
//model()函数接受两个参数,第一个参数为你数据库中的文档名(其实就是表名),如果该文档在数据库中不存在,则会按照以下方式创建:将第一个参数全部变成小写后面加s为名的文档,第二个参数就是你前面创建的Schema对象。这里非常重要,需要理解mongodb数据库的Schema及Model的转化关系。
Users = mongoose.model('XT_WBMessages',userSchema);
module.exports = Users; //导出该数据模块
5.3、在routes文件中添加如下代码:
var Users = require('../schemas/user'); //导入Schema模块
//插入数据
router.get('/createUser',function(req,res,next){
    //WBMessage创建Model对象,因为Model对象才可以调用Mongodb数据库的方法对数据库进行操作
    var UsersSchema = new Users({
        _id: 1,
        userCode:'10000',
        userName:'王麻子',
        deptCode:'1104',
        deptName:'研发科',
    });
    //调用save()方法向数据库中插入一条数据
    UsersSchema.save(function(err){
        if(err)
            return console.log(err);
        res.send({result:"插入数据成功"});
    })
})
//这是重新启动express服务器,在浏览器地址栏中输入localhost:3000/user/createUser即可看到浏览器中输出{"result":"插入数据成功"}

//查找所有数据
router.get('/findWessage',function(req,res,next){
    WBMessage.find(function(err,wbmessage){
        if(err){
            return console.log(err);
        }
        res.json({
            data:wbmessage,
        });
    })
})
//查找所有数据
router.get('/findOneWessage',function(req,res,next){
    WBMessage.find({'_id':'1'},function(err,wbmessage){
        if(err){
            return console.log(err);
        }
        res.json({
            data:wbmessage,
        });
    })
})
//查找某一条数据
router.get('/removeMessageById',function(req,res,next){
    WBMessage.remove({'_id':'1'},function(err,wbmessage){
        if(err){
            return console.log(err);
        }
        res.json({data:'删除成功!'});
    })
})
//修改某一条数据 方法一 
router.get('/updateMessageById',function(req,res,next){
    var query = {'_id':'1'};
    var update = {$set:{'userName':'王麻子'}};
    WBMessage.findOneAndUpdate(query,update,false,function(err,wbmessage){
        if(err){
            return console.log(err);
        }
        res.json({data:'更新数据成功!'});
    })
})
//修改某一条数据 方法二
router.get('/updateMessageByIdTwo',function(req,res,next){
    WBMessage.findById('5',function(err,doc){
        if(err){
            return console.log('查找不到此条消息');
        }
        doc.deptName = '研发科';
        doc.deptCode = '1104';
        doc.userName = '王麻子';
        doc.save(function(err){
            if(err){
                return console.log('更新失败');
            }
            res.send('数据更新成功');
        })
    })
})

这里是运行的一条基本结果,到此为止利用express框架+mongodb数据库搭建的一个基本的后台服务器就完成了。
这里写图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值