基于Nodejs+express4+Mongodb+Angularjs建立web项目

基于Nodejs+express4+Mongodb+Angularjs建立web项目


  • 基于Nodejs搭建web服务器
  • 利用Express4搭建restful服务
  • 使用Mongodb作为数据库,用mongoose组件连接Mongodb
  • 使用AngularJS+bootstrap设计UI界面
  • 使用Webstorm 10.0.4开发

第一部分:服务端搭建

1.通过Webstorm建立Node.js Express APP
File -> New Project -> Node.js Express App,
        Location栏填写项目名称,选择Nodejs和npm位置,
        Options -> Template 选择EJS

在项目下新建文件夹models保存mongodb相关对应model
在models目录下创建model文件movie.js
在routes目录下创建restful API 支持文件 movies.js
完成后的目录结构如下

- project
    -- bin
        --- www
    -- models
        --- movie.js
    -- node_modules
        --- ...
    -- public
        --- ...
    -- routes
        movies.js
    app.js
    package.json
2.在package.json中添加mongoose支持及其他相关组件
{
  "name": "project",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.13.2",
    "cookie-parser": "~1.3.5",
    "debug": "~2.2.0",
    "ejs": "~2.3.3",
    "express": "~4.13.1",
    "morgan": "~1.6.1",
    "errorhandler": "~1.4.2",
    "serve-favicon": "~2.3.0",
    "mongoose": "~4.2.5",
    "connect-mongo": "latest",
    "express-session": "latest"
  },
  "engines": {
    "node": ">=0.10.0"
  }
}
3.在movie.js中建立movie模型:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

// define an db object
var movieSchema = new Schema({
    title: String,
    releaseYear: String,
    director: String,
    genre: String
});

// bind module for accessing outside
module.exports = mongoose.model('Movie', movieSchema);
4.在movies.js中建立基于movie的restful API

引入movie模型,并开启router

var Movie = require('../models/movie.js');
var express = require('express');
var router = express.Router();

实现一些基本的功能API

var Movie = require('../models/movie.js');

// get all movies
exports.list = function(req, res){
   
    Movie.find(function (err, movies) {
   
        if (err) {
            return res.send(err);
        }
        res.json(movies);
    })
};

// create new movie
exports.create = function(req, res){
   
    var movie = new Movie(req.body);

    movie.save(function (err) {
   
        if (err) {
            return res.send(err);
        }
        res.send({message: 'add a movie'});
    });
};

// update a movie
exports.update = function (req, res) {
   
    //Movie.findById(req.params.id, callback)
    Movie.findOne({_id: req.params.id}, function (err, movie) {
   
        if (err) {
            return res.send(err);
        }
        for (prop in req.body) {
            movie[prop] = req.body[prop];
        }

        movie.save(function (err) {
   
            if (err) {
                return res.send(err);
            }
            res.json({message: "update a movie"});
        });
    });
};

//delete a movie
exports.delete = function (req, res) {
   
    Movie.remove({_id: req.params.id}, function (err, movie) {
   
        if (err) {
            return res.send(err);
        }
        res.json({message: 'delete a movie'});
    });
};

导出功能模块让其他部分可以使用该模块

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
Node.js是一个基于Chrome V8 JavaScript引擎的JavaScript运行环境,可用于服务器端编程。Express是一个基于Node.js平台的Web应用开发框架,提供了简单易用的API,可以快速构建Web应用程序。Mongoose是一个优秀的Node.js模块,用于连接MongoDB数据库,并提供了丰富的API来操作MongoDB数据库。 下面是使用Node.js、Express、Mongoose操作MongoDB的基本流程: 1. 安装Node.js、Express和Mongoose 在终端中执行以下命令: ``` npm install node npm install express npm install mongoose ``` 2. 连接MongoDB数据库 在app.js或server.js文件中,使用Mongoose连接MongoDB数据库: ``` var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); ``` 3. 定义数据模型 在models目录下创建一个JavaScript文件,使用Mongoose定义数据模型: ``` var mongoose = require('mongoose'); var Schema = mongoose.Schema; var UserSchema = new Schema({ name: String, age: Number, email: String }); module.exports = mongoose.model('User', UserSchema); ``` 4. 实现API接口 在routes目录下创建一个JavaScript文件,实现API接口: ``` var express = require('express'); var router = express.Router(); var User = require('../models/user'); router.get('/users', function(req, res, next) { User.find(function(err, users) { if (err) return next(err); res.json(users); }); }); router.post('/users', function(req, res, next) { var user = new User(req.body); user.save(function(err) { if (err) return next(err); res.json(user); }); }); router.get('/users/:id', function(req, res, next) { User.findById(req.params.id, function(err, user) { if (err) return next(err); res.json(user); }); }); router.put('/users/:id', function(req, res, next) { User.findByIdAndUpdate(req.params.id, req.body, function(err, user) { if (err) return next(err); res.json(user); }); }); router.delete('/users/:id', function(req, res, next) { User.findByIdAndRemove(req.params.id, function(err, user) { if (err) return next(err); res.json(user); }); }); module.exports = router; ``` 5. 启动Express应用 在app.js或server.js文件中启动Express应用: ``` var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var userRoute = require('./routes/user'); app.use(bodyParser.json()); app.use('/api', userRoute); app.listen(3000, function() { console.log('Server listening on port 3000'); }); ``` 6. 测试API接口 通过Postman等工具测试API接口。例如: - GET http://localhost:3000/api/users - POST http://localhost:3000/api/users - GET http://localhost:3000/api/users/5f3e7003c3e1c12345678901 - PUT http://localhost:3000/api/users/5f3e7003c3e1c12345678901 - DELETE http://localhost:3000/api/users/5f3e7003c3e1c12345678901 这样就完成了使用Node.js、Express、Mongoose操作MongoDB的基本流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值