应用node.js+mongodb数据库实现一个mvc架构的web项目

最近在学nodejs,也没怎么学就是大概学了一点,并尝试着写了一个应用mvc架构的web项目,和传统的web项目比较起来确实能节省了很多,不用再用第三方的服务器,有过js或jq的经验的同学更容易上手,好了废话不多说,来给大家说说这个简单的web项目。

首先用express简历一个web项目,在命令行输入express -e bbs,前提是安装了express框架,项目目录如下:

如下


public方的是一些静态文件如css js 等

app.js是服务器,代码如下

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var ejs=require('ejs')

var routes = require('./routes/index');
var users = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));

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

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/users', users);
app.use('/login',routes);
app.use('/dologin',routes);
app.use('/logout',routes);
app.use('/welcome',routes);


// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
  app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
      message: err.message,
      error: err
    });
  });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
  res.status(err.status || 500);
  res.render('error', {
    message: err.message,
    error: {}
  });
});

app.listen(8888)
module.exports = app;



route是路由控制他接受i请求和转发请求里面包含了数据库的操作

代码如下index.js

var express = require('express');
var router = express.Router();
var mongoose=require('mongoose');
var models=require('./models');
var User=models.User;
mongoose.connect('mongodb://localhost/test');

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});
router.get('/login', function(req, res, next) {
  res.render('login', { title: 'login' });
});
router.post('/dologin', function(req, res, next) {
    console.log("99");
    var user={name:req.body.name,password:req.body.password};
    User.count(user,function (error,doc) {
        if(doc==0){
            res.redirect('/login')
        }else{
                res.redirect('/welcome?name='+req.body.name)
        }
    });
});
router.get('/logout', function(req, res, next) {
  res.render('index', { title: 'Express' });
});
router.get('/welcome', function(req, res, next) {
    var user={
        name:req.query.name
    }
  res.render('welcome', { title: 'home',user:user });
});

module.exports = router;
第二个
models.js

var mongoose=require('mongoose');
var Schema=mongoose.Schema;
var UserSchema=new Schema({
    name:String,
    password:String
})
exports.User=mongoose.model('User',UserSchema);


第三个users.js

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/', function(req, res, next) {
  res.send('respond with a resource');
});

module.exports = router;

然后是view

index.html

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <h1><%= title %></h1>
    <h1><a href="login">登陆</a></h1>
  </body>
</html>


login.html

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <form method="post" action="dologin">
        username:<input type="text" name="name" id="name">    <br>
        password:<input type="password" name="password" id="password"><br>
        <input type="submit" value="submit"><br><br>
        <input type="reset" value="reset">
    </form>
  </body>
</html>



welcome.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
    <h1>Hello<%=user.name%></h1>
    <h1><a href="logout">退出</a></h1>
</body>
</html>


当然数据库中要有这些数据,别忘记建立数据库

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值