一、搭建开发环境

进入 http://nodejs.org 下载开发环境

http://Expressjs.com 下载安装Express  npm install -g express

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

MongoDB对许多平台都提供驱动可以访问数据库,如C#、Java、Node.js等。这里以Node.js为例。

安装MongoDB访问驱动
使用包管理器,在命令行执行如下指令:

全局安装驱动

npm install mongodb -g

在当前项目中引入mongodb

npm install mongodb --save

 

在项目的根目录下新建一个db.js文件,使用Node.js操作MongoDB

添加数据

//引入mongodb模块,获得客户端对象
var MongoClient = require('mongodb').MongoClient;
//连接字符串
var DB_CONN_STR = 'mongodb://localhost:27017/gomall';    

//定义函数表达式,用于操作数据库并返回结果
var insertData = function(db, callback) {  
    //获得指定的集合 
    var collection = db.collection('users');
    //插入数据
    var data = [{_id:7,"name":'rose',"age":21},{_id:8,"name":'mark',"age":22}];
    collection.insert(data, function(err, result) { 
        //如果存在错误
        if(err)
        {
            console.log('Error:'+ err);
            return;
        } 
        //调用传入的回调方法,将操作结果返回
        callback(result);
    });
}

//使用客户端连接数据,并指定完成时的回调方法
MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    //执行插入数据操作,调用自定义方法
    insertData(db, function(result) {
        //显示结果
        console.log(result);
        //关闭数据库
        db.close();
    });
});

运行结果:

连接成功!
{ result: { ok: 1, n: 2 },
  ops: 
   [ { _id: 7, name: 'rose', age: 21 },
     { _id: 8, name: 'mark', age: 22 } ],
  insertedCount: 2,
  insertedIds: [ 7, 8 ] }

修改数据

//引入mongodb模块,获得客户端对象
var MongoClient = require('mongodb').MongoClient;
//连接字符串
var DB_CONN_STR = 'mongodb://localhost:27017/gomall';    

//定义函数表达式,用于操作数据库并返回结果
var updateData = function(db, callback) {  
    //获得指定的集合 
    var collection = db.collection('users');
    //要修改数据的条件,>=10岁的用户
    var  where={age:{"$gte":10}};
    //要修改的结果
    var set={$set:{age:95}};
    collection.updateMany(where,set, function(err, result) { 
        //如果存在错误
        if(err)
        {
            console.log('Error:'+ err);
            return;
        } 
        //调用传入的回调方法,将操作结果返回
        callback(result);
    });
}

//使用客户端连接数据,并指定完成时的回调方法
MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    //执行插入数据操作,调用自定义方法
    updateData(db, function(result) {
        //显示结果
        console.log(result);
        //关闭数据库
        db.close();
    });
});

运行结果:

连接成功!
{ result: { n: 5, nModified: 5, ok: 1 }

查询数据

//引入mongodb模块,获得客户端对象
var MongoClient = require('mongodb').MongoClient;
//连接字符串
var DB_CONN_STR = 'mongodb://localhost:27017/gomall';    

//定义函数表达式,用于操作数据库并返回结果
var findData = function(db, callback) {  
    //获得指定的集合 
    var collection = db.collection('users');
    //要查询数据的条件,<=10岁的用户
    var  where={age:{"$lte":10}};
    //要显示的字段
    var set={name:1,age:1};
    collection.find(where,set).toArray(function(err, result) { 
        //如果存在错误
        if(err)
        {
            console.log('Error:'+ err);
            return;
        } 
        //调用传入的回调方法,将操作结果返回
        callback(result);
    });
}

//使用客户端连接数据,并指定完成时的回调方法
MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    //执行插入数据操作,调用自定义方法
    findData(db, function(result) {
        //显示结果
        console.log(result);
        //关闭数据库
        db.close();
    });
});

运行结果:

连接成功!
[ { _id: 0, name: 'zhangguo0', age: 8 },
  { _id: 1, name: 'zhangguo1', age: 9 } ]

删除数据

//引入mongodb模块,获得客户端对象
var MongoClient = require('mongodb').MongoClient;
//连接字符串
var DB_CONN_STR = 'mongodb://localhost:27017/gomall';    

//定义函数表达式,用于操作数据库并返回结果
var findData = function(db, callback) {  
    //获得指定的集合 
    var collection = db.collection('users');
    //要删除数据的条件,_id>2的用户删除
    var  where={_id:{"$gt":2}};
    collection.remove(where,function(err, result) { 
        //如果存在错误
        if(err)
        {
            console.log('Error:'+ err);
            return;
        } 
        //调用传入的回调方法,将操作结果返回
        callback(result);
    });
}

//使用客户端连接数据,并指定完成时的回调方法
MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    //执行插入数据操作,调用自定义方法
    findData(db, function(result) {
        //显示结果
        console.log(result);
        //关闭数据库
        db.close();
    });
});

运行结果:

连接成功!
{ result: { n: 4, ok: 1 },

http://www.cnblogs.com/best/p/6212807.html

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

继续安装ejs:npm install ejs

如果要想运行Node.js程序,则现在只能够使用“node app.js”,而这样的运行方式,如果在app.js文件修改之后往往需要重新启动才可以加载新的内容,这对于开发是非常不方便的, 为此,可以使用一个supervisor组件包,它可以动态的加载修改之后的开发程序。

下载安装supervisor

npm install -g supervisor

利用supervisor方式运行程序

supervisor app.js

二、代码开发

 使用EJS模板

Nodejs + MongoDb

所有用户需要保存的页面都应该保存在views目录下,但是此时index.ejs是一个html页面,而有的人不习惯于使用ejs,习惯于使用html,为了解决这样的问题,则需要配置模板。

         定义加载的项目模块

var ejs = require('ejs') ; // require()函数表示要加载的模块

         需要增加一些相关的配置;

app.engine('html',ejs.__express) ;

app.set('view engine', 'html'); // 替换:app.set('view engine', 'ejs');

         将views中的index.ejs文件修改为index.html文件,观察是否可以改变。

         下面编写一个用户的登录,登录的时候只提供用户id(userid)和密码,下面建立几个相关的操作页面:login.html、welcome.html。但是在建立这两个文件的时候,请一定要注意,文件的编码必须设置为UTF-8,否则无法操作中文。

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
   <h1><%= title %></h1>
<form method="post">
    用户ID:<input type="text" name="userid" id="userid"><br>&nbsp;&nbsp;码:<input type="password" name="password" id="password"><br>
    <input type="submit" value="登录">
    <input type="reset" value="重置">
</form>
</body>
</html>
login.html

相关文章:

  • 2021-05-25
  • 2021-08-22
  • 2022-12-23
  • 2021-06-23
  • 2021-06-16
猜你喜欢
  • 2021-09-20
  • 2021-11-25
  • 2022-12-23
  • 2022-12-23
  • 2021-07-02
  • 2021-06-20
  • 2022-01-11
相关资源
相似解决方案