案例:学生档案管理
- 技术要点
- 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)