设为首页 加入收藏

TOP

Nodejs 做后台完整业务案例(一)
2017-12-29 06:07:19 】 浏览:544
Tags:Nodejs 后台 完整 业务 案例

大家知道js现在不仅仅可以写前端界面而且可以写后端的业务了,这样js就可以写一个全栈的项目。这里介绍一个nodejs + express + mongodb + bootstap 的全栈项目。


  1、安装必要的包,npm install express  npm install mongodb npm install ejs (需要使用什么工具,就安装哪个工具)


  2、建一个入口文件,index.js,这里主要是做路由的分发。启动:  node index.js


var express = require("express");// require express 的框架
var app = express(); // 实例化一个 express的对象
var router = require("./router/router.js"); // 引用 router 的文件,下面将介绍这个router
var session = require('express-session');// 使用了 express 一个 session 的工具,主要用作注册登录使用
var config = require("./config.js");// 引用一个配置文件



//使用session
app.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: true,
}));


app.set("view engine","ejs");//  设置一个模版引擎, 渲染模版引擎是 ejs
app.use(express.static("./assets"));// 静态一个文件夹,实用的好处这里的文件的路径就可以 用  /  表示


app.get("/",router.index); // 后端分发的路由 "/" 表示主页 主页的业务代码逻辑在 router里的 index 的函数里


//我的发布
// app.get("/mypost", routerUser.list);
//search
// app.get("/search",routerSearch.list);


//执行登陆业务
app.post("/doLogin",router.doLogin);
app.post("/doCinemaSubmit",router.doCinemaSubmit);
//个人中心页


// app.get("/usercenter",router.showUserCenter);


app.get("/cinema/:targetId",router.showSelectPage);


app.post('/seatHandle', router.seatHandle)
//退出
app.get("/user_exit",router.logout);


//提交修改密码
app.post("/reviseMyMsg",router.reviseMyMsg);


app.listen(config.port, function () {
    console.log("项目启动成功: " + config.port);
});


3、处理后端业务数据逻辑的router,这里router 名字可以随便取,贴切的话可以 命名为 controller  或者 model  ,两个命名规范的业务划分,我统统集合在这个一个文件里。


//又提交,引入formidable
var formidable = require("formidable"); // 一个前台提交到后端接受数据的一个包,缺点: 没办法接受前端传来的数组数据
//引入封装好的db.js,从config走
var db = require("../model/db.js"); // 这里的解释转到4


var path = require("path");
var fs = require("fs");var mongo = require('mongodb');
var Ob = mongo.ObjectID;
var userData = {};


// post 请求的一种方式
//注册业务 这是一个post 的请求,接受前端传来的数据做业务处理,处理后返回前端    res.send('....')  前端ajax 获得一个返回状态,做前端数据处理
exports.doRegist = function (req,res,next) {
  var form = new formidable.IncomingForm();
  form.parse(req, function(err, fields, files) {
    var username = fields.username;
    var userpassword = fields.userpassword;
    var sharecode = fields.sharecode;
    // 邀请码
    if (!sharecode){
      res.send("-11");
      return;
    }
    if (!Ob.isValid(sharecode)){
      res.send("-11");
      return;
    }
    // sharecode = "59ac32bbab6a439ed60ebb74"; 测试用
    db.find(ds.SHARECODE, {"_id":mongo.ObjectID(sharecode)}, function(err, result){
      if (err){
        res.send("-11");
        return;
      }
      if (result.length == 0){
        res.send("-11");
        return;
      }
      db.find("users",{"username": username},func

首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python 迭代器 Iterator 下一篇使用Akka Actor和Java 8构建反应..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目