NodeJS项目制作流程

案例:学生档案管理

  • 技术要点
    • http请求响应、MongooDB数据库、art-template模板引擎、静态资源访问。

NodeJS项目制作流程

  • 建立项目文件夹并生成项目描述文件

    • 新建项目文件夹students
    • 在项目文件夹中打开命令提示符面板
    • 键入指令 npm init -y 自动生成package.json文件
    • students文件夹中新建文件app.js 以创建网络服务器
  • 创建网站服务器实现客户端和服务器端通信

    • app.js文件中,引入http模块,创建网站服务器
  • 连接数据库并根据需求设计学员信息表

    • 下载安装 mongoose 第三方包 npm install mongoose
    • 在项目根目录下新建文件夹model 并创建文件connect.js
    • connect.js中,引入mongoose数据库模块 const mongoose = require(\'mongoose\');
    • 连接数据库 mongoose.connect(\'mongodb://localhost/playground\');
    • app.js中引入connect.js文件 require(\'./model/connect\');
    • model文件夹下新建文件user.js以创建数据库集合
    • user.js中,引入mongoose数据库模块 const mongoose = require(\'mongoose\');
    • 创建学生集合规则 const studentsSchema = new mongoose.Schema({})
    • 使用学生集合规则 const Student = mongoose.model(\'Student\', studentsSchema);
    • 将学生信息集合进行导出 module.exports = Student;
    • 回到app.js 引入学生信息集合 const Student = require(\'./model/user\');
  • 创建路由并实现页面模板呈递

    • 下载安装路由模块 npm install router
    • app.js中引入router模块 require(\'router\');
    • 获取路由对象 const router = getRouter();
    • 定义路由,呈递学生档案信息页面 ``
    • 定义路由 router.get(\'/add\', (req, res) => {res.end(\'test\');})
    • 当客户端访问服务器端的时候,实现路由的调用
  • 实现静态资源访问

    • 下载安装模板引擎模块 npm install art-template
    • 引入模板引擎 const template = require(\'art-template\');
    • 配置模板根目录 template.defaults.root = path.join(__dirname, \'views\');
    • 当客户端访问服务器端的时候,启动路由功能
    • 下载安装静态资源访问服务 npm install serve-static
    • 引入模块 const serveStatic = require(\'serve-static\');
    • 调用方法,实现静态资源访问服务 const serve = serveStatic(path.join(__dirname, \'public\'));
    • 当客户端访问服务器端的时候,启动静态资源访问服务功能
  • 实现学生信息添加功能

    • 在模板的表单中指定请求地址与请求方式 action method
    • 为每一个表单项添加name属性
    • 添加实现学生信息功能路由
    • 引入querystring模块,将字符串解析为对象 const querystring = require(\'querystring\');
    • 接收客户端传递过来的学生信息
    • 将学生信息添加到数据库中
    • 将页面重定向到学生信息列表页面
  • 实现学生信息展示功能

    • 从数据库中将所有的学生信息查询出来
    • 通过模板引擎将学生信息和HTML模板进行拼接
    • 将拼接好的HTML模板响应给客户端

第三方模块router

  • 功能:实现路由
  • 使用步骤
    • 获取路由对象
    • 调用路由对象提供的方法创建路由
    • 启用路由,使路由生效
const getRouter = require(\'router\')
const router = getRouter();
router.get(\'/add\', (req, res) => {
    res.end(\'Hello World!\')
}) 
server.on(\'request\', (req, res) => {
    router(req, res)
})
  • 下载 npm install router

第三方模块serve-static

  • 功能:实现静态资源访问服务
  • 步骤:
    • 引入serve-static模块获取创建静态资源服务功能的方法
    • 调用方法创建静态资源服务并指定静态资源服务目录
    • 启用静态资源服务功能
const serveStatic = require(\'serve-static\')
const serve = serveStatic(\'public\')
server.on(\'request\', () => { 
    serve(req, res)
})
server.listen(3000)

https://github.com/wing1377/NodeJS-Student-demo