express简介
- express是一个简介而灵活的 nodejs Web应用框架,提供了一系列强大特性帮助创建各种Web应用,和丰富的HTTP工具
- 使用expree框架需要用的模块
- express 框架
- ejs 模板模块
- body-parser 模块
- mysql 模块
- cookie-parser 模块
创建 mysql 模块
// 引入第三方数据库模块
var mysql = require('mysql');
// 创建数据库连接
var connection = mysql.createConncetion({
host: 'localhost', // 连接域名
port: '3306', // 端口号
user: 'root', // 超级管理员
password: '123456', // 管理员密码
database: 'test' // 要连接的数据库名
});
// 导出模块
exports.db = connection;
创建路由模块
// 引入express框架(模块)
var express = require('express');
// 引入ejs模板模块
var ejs = require('ejs');
// 引入body-parser中间件,用来解析post提交的数据
var bodyparser = require('body-parser');
// 导入cookie
var cookieParser = require('cookie-parser');
// 导入数据库模块,利用解构赋值(ES6)的方式,此处写数据库的路径
var { db } = require('./database/db');
// 定义用body-parser中间解析数据的类型;
// false,解析String 和 Array类型; true,解析全部类型;建议专项专制,避免耗费性能
var bodyurlencoded = bodyparser.urlencoded({extended: false});
// 连接数据库
db.connect();
// express框架为一个函数,所以需要调用
var app = express();
// 使用cookie中间件
app.use(cookieParser());
// 设置静态文件目录(可以更改)
app.use(express.static('static'));
// 设置模板引擎渲染html页面,第二个参数是说明用ejs的表达式来渲染html文件
app.engine('html', ejs.__express);
// 设置渲染引擎为渲染html文件
app.set('view engine', 'html');
// 修改视图默认识别的文件夹,默认是views
app.set('views', __dirname + '/新文件夹名');
// 创建响应的路由
// 输入域名,默认进入首页
app.get('/', function (req, res) {
// res.render是一个渲染函数 第一个参数是要渲染的页面 第二个参数是要传入页面的数据
// req.cookies 获取cookies的所有信息,结果为一个对象
res.render('index', {userInfo: req.cookies.name});
});
// 进入登陆页面
app.get('/login'), function (req, res) {
res.render('login', {});
}
// 登陆成功后,带着用户名回到首页
app.post('index', bodyurlencoded, function (req, res) {
if(req.body.username === '') {
res.send('用户名不能为空');
}else if(req.body.password === ''){
res.send('密码不能为空');
}else {
// 创建sql语句,用于查询数据库
var sql = `select * from users where account=${req.body.username}`;
// 查询数据库的方法
db.query(sql, function (err, data) {
if(err){
console.log(err)
}else{
if(data.length === 0){
res.send('用户名不存在');
}else if(data[0].password !== req.body.password){
res.send('账号或密码错误');
}else{
// 存储用户名至cookie
res.cookie('name', req.body.username);
res.render('index', {
userInfo: data[0]
});
}
}
});
}
});
// 进入注册页面
app.get('register', function (req, res) {
res.render('register', {});
});
// 注册成功,返回登陆界面
app.post('/login', bodyurlencoded, function (req, res) {
if(req.body.password !== req.body.password1){
res.send('两次密码不一样');
}else {
// 查找数据库是否存在同名的用户名,如果有,返回用户名已存在
var sql1 = `select * from user where account=${req.body.username}`;
db.query(sql1, function (err, data) {
if(err){
console.log(err);
}else {
if(data.length > 0){
res.send('用户名已存在');
}else{
// 向数据库添加数据
var sql2 = `insert into users (account, password) value (${req.body.username}, ${req.body,password})`;
db.query(sql2, function (err, data) {
if(err){
console.log(err)
}else{
res.render('login', {});
}
});
}
}
});
}
});
// 导出模块
module.exports = {
app
}
创建服务器启动模块
// 引入路由模块,此处写路由模块路径
var { app } = require('./router');
// 启动服务器,第一个参数是端口
app.listen(8080, function () {
// 此处只是提示服务器运行成功
console.log('server is running');
});
修改默认域名
- 找到 C:\Windows\System32\drivers\etc 该路径下的hosts文件
- 在文件内添加 127.0.0.1 www.feng.com,后边的域名可以随意添加,可以添加多个,都可以生效
版权声明:本文为weixin_49524462原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。