案例流程
/* 案例流程:
* 项目结构 => 新建文件夹"30_blog" => 控制台"npm init -y"生成package.json依赖记录文件 => 控制台"git init"连接github准备
* => 安装必要第三方包,控制台"npm i express mongoose --save" =>主目录下创建"app.js"文件
* => app.js创建服务,如下
*/
var express = require("express"); /* 引入express服务框架 */
var path = require("path"); /*路径核心模块 */
var app = express(); /* 创建服务 */
app.use("/public/", express.static(path.join(__dirname, "./public/"))); /* 开放静态资源目录 */
app.use("/node_modules/", express.static(path.join(__dirname, "./node_modules/")));
app.get('/', function (req, res) {
res.send("Hello project begin!");
}); /* 请求处理 */
app.listen(5000, function () {
console.log("running......");
}); /* 开启服务监听 */
/*
* => 安装模板引擎" install express-art-template art-template --save"
* => 使用模板引擎时必要配置,如下
*/
app.engine('html', require("express-art-template")); // 引入express-art-template模板引擎,默认模板库为主目录的"./views"文件夹,其中的.html将视作模板
app.set("views", path.join(__dirname, "./views/")); //设置模板库在主目录下views文件夹
/* => 配合模板语法创建前端.html文件
* => 路由表设计 =>
* | 路径 | 方法 | get参数 | post参数 | 是否需要登入 | 备注 |
* | / | GET | 默认无 | 默认无 | 默认否 | 渲染首页 |
* | /register | GET | | | |渲染注册页面 |
* | /register | POST | | email,nickname,password | | 处理注册请求 |
* | /login | GET | | | | 渲染登入页面 |
* | /login | POST | | email,password | 处理登入请求 |
* | /logout | GET | | | |处理退出请求 |
*
* => 路由表建立,router.js内如下
*/
var express = require("express"); /* 引入express服务框架 */
var router = express.Router(); /* 使用express的路由容器构造函数 */
router.get("/", function (req, res) {
res.render("index.html");
}); /* 加入路由映射关系 */
module.exports = router; /* 导出路由容器 */
/*
* => 路由表建立,app.js内如下
*/
var router = require("./router.js"); /* 导入路由容器 */
app.use(router); /* 把路由挂载到app服务上 */
/*
* => 处理表单提供的数据 => 操作数据库 => 发送表单
* => 设计数据模型文件(以便使用Mongoose增删改查数据)
* => 设计多个数据模型模块,例子user.js内容如下
*/
var mongoose = require("mongoose"); /* 引入mongoose数据库操作框架 */var Schema = mongoose.Schema;var userSchema = new Schema({ id: { type: String }, email: { type: String, required: true }, nickname: { type: String, required: true }, password: { type: String, required: true }, create_time:{ type:Date, default:Date.now() }}); /* 创建并设计模型内部结构 */module.exports = mongoose.model("User", userSchema);/* 导出本模块的数据模型 */
/*
* => mongoose.conect("mongodb://localhost/test",{useMongoClient:true}) //在多个数据模型文件中只需要连接一次数据库服务
*/
/*
* => 根据多个数据模型模块完成路由表router.js中所有路由映射关系
*/