①安装node环境

在node.js官网下载LTS长期支持版本,然后傻瓜式安装

②查看是否安装成功

打开cmd终端,输入node -v 有版本号,则安装成功。再输入npm -v 有版本号,则npm也安装成功

③使用express脚手架创建项目

方法一:
      >> 安装脚手架: npm i -g express-generator
      >> 项目的创建
        * 打开终端,进入某个目录
        * express --view=ejs 项目名字
        * cd 项目名字
        * 安装相关依赖(三方模块):npm i
        * 运行项目:npm start
方法二:
        * 不需要全局安装脚手架 express-generator
        * npx express-generator --view=ejs 项目名字
        * cd 项目名字
        * 安装相关依赖(三方模块):npm i
        * 运行项目:npm start
 
④对创建好的项目进行一些自己个性化的配置
文件目录结构
 1、在bin/www文件中

server.listen(port); 改为
server.listen(port,()=>{
console.log(`running ${port}...`)
});

  终端控制台效果:

2、实现代码的热加载,使得不用每次改完代码,就需要重新npm start。(注意:更改配置文件,还是得重新npm start)

  安装npm插件nodemon

npm install -g nodemon

  在package.json文件中


"scripts": {
"start": "node ./bin/www"
}, 改为
"scripts": {
"start": "nodemon ./bin/www"
},

3、app.js中的代码

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan'); var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users'); var app = express(); // view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs'); app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public'))); //改动1// 利用 CORS 解决跨域
app.all('*', function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*'); // *允许任意地址访问。解决跨域后携带cookie问题req.headers.origin
// res.header("Access-Control-Allow-Credentials", "true"); //是否包含cookie,如果不包含,可省略
res.header('Access-Control-Allow-Methods', 'GET,POST,PATCH,PUT,OPTIONS,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization,Cookie,Accept,Token,Origin');
next(); // 继续下一个中间件的处理
}); //改动2 //统一进行路由拦截:session、cookie版
// app.all('*', (req, res, next) => {
// console.log('请求地址',req.url);
// if (req.url == '/pages/login' || req.url == '/users/login' || req.url =='/users/register') { // 如果是登录页或者是登录请求和注册请求
// next(); // 该干嘛干嘛去
// } else {
// if (req.session.sign) { // 判断权限
// next(); // 登陆后想访问什么页面直接访问
// } else {
// res.redirect('/pages/login'); // 未登录,重定向到登录页
// }
// }
// console.log('权限',req.session.sign);
// }); app.use('/', indexRouter);
app.use('/users', usersRouter); // catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
}); // error handler
app.use(function(err, req, res, next) {
console.log('服务器500错误:', err); //改动3
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page
res.status(err.status || 500);
res.render('error');
}); module.exports = app;

⑤检测服务器是否搭建成功

在终端运行命令npm start。在浏览器访问http://localhost:3000/,能出来页面则证明服务器搭建成功

⑥自己配置路由

1、在routes文件下新建js文件(这里就不新建了,使用项目已经有的文件)

  在index.js中

var express = require('express');
var router = express.Router(); /* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Hello World!' }); //渲染views/index.ejs文件
}); module.exports = router;

  在users中

var express = require('express');
var router = express.Router(); router.post('/xixi', function(req, res, next) {
const {name}=req.body //获取post请求的参数
res.json({
txt:`我是${name}返回的数据`
});
});
router.get('/xixi2', function(req, res, next) {
const {name}=req.query //获取get请求的参数
res.json({
txt:`我是${name}返回的数据`
});
}); module.exports = router;

2、在app.js文件中配置

//注意:这里项目初始化已经配置好了,若是新建的路由则需要自己配置

//首先引入文件模块
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users'); //其次
app.use('/', indexRouter);
app.use('/users', usersRouter);

3、我们已经可以请求两个地址

api1 = 'http://127.0.0.1:3000/users/xixi'
api2 = 'http://127.0.0.1:3000/users/xixi2'

**至此,一个简易的服务器已经搭建成功

⑦从数据库中获取数据

1、在根路径下新建一个module文件,此时的文件目录

  首先运行npm install mysql,安装mysql依赖。然后在module文件下新建一个mysqlModule.js文件,配置连接池

const mysql = require('mysql');
const pool = mysql.createPool({
host: '127.0.0.1',
user: 'root',
password: 'root',
database: 'address_list',
post: 3306
}); const query=function(sql,options){
return new Promise((resolve,resject)=>{
pool.getConnection(function(err, connection) {
if (err) return resject(err);
connection.query(sql, options, function(err2, result) {
if (err2){
resject(err2);
}else{
resolve(result);
}
connection.release(); // 释放连接池
});
});
});
} module.exports=query;

2、重新配置router/users.js文件

var express = require('express');
var router = express.Router();
const query = require('../module/mysqlModule.js'); /* GET users listing. */
router.post('/xixi', function(req, res, next) {
const {name}=req.body
const sql=`SELECT user_tel FROM users WHERE user_name=?`
query(sql,[name])
.then(data=>{
res.json({
state: '200',
data
});
})
.catch(err=>{
res.json({
state: '0',
msg: '查找失败',
err
})
})
});
router.get('/xixi2', function(req, res, next) {
const {name}=req.query
const sql=`SELECT user_tel FROM users WHERE user_name=?`
query(sql,[name])
.then(data=>{
res.json({
state: '200',
data
});
})
.catch(err=>{
res.json({
state: '0',
msg: '查找失败',
err
})
})
}); module.exports = router;

Node:使用express搭建一个简易的服务器的更多相关文章

  1. 真刀实战地搭建React+Webpack+Express搭建一个简易聊天室

    一.前面bb两句 因为自惭(自残)webpack配置还不够熟悉,想折腾着做一个小实例熟悉.想着七夕快到了,做一个聊天室自己和自己聊天吧哈哈.好了,可以停止bb了,说一下干货. 二. 这个项目能学到啥? ...

  2. 19.3.19 使用Flask框架搭建一个简易登录服务器

    import Flask import json from Flask import request server1 = flask.Flask(__name__) #实例化一个flask对象 @se ...

  3. express + mongodb 搭建一个简易网站(一)

    express + mongodb 搭建一个简易网站(一) 前言:后台使用node.js的express框架,数据库使用mongodb,模板使用ejs.大概就这些. 开始第一个简易网站之旅吧.... ...

  4. express + mongodb 搭建一个简易网站 (四)

    express + mongodb 搭建一个简易网站 (四) 目前网站整体页面都已经能全部展示了,但是,整个网站还有两个块需要做完才能算完整,一个连接数据库,目前网站上的数据都是抓取的本地假数据,所以 ...

  5. express + mongodb 搭建一个简易网站 (三)

    express + mongodb 搭建一个简易网站 (三) 前面已经实现了基本的网站功能,现在我们就开始开搞一个完整的网站,现在整个网站的UI就是下面的这个样子. 我们网站的样子就照着这个来吧. 1 ...

  6. express + mongodb 搭建一个简易网站(二)

    express + mongodb 搭建一个简易网站 (二) 在搭建网站(一)中,实现了简单的路由功能,这离一个完整的网站还差的有点远,继续撸代码吧. 1.首先在根目录下新建一个views文件夹,用来 ...

  7. 初学Node(六)搭建一个简单的服务器

    搭建一个简单的服务器 通过下面的代码可以搭建一个简单的服务器: var http = require("http"); http.createServer(function(req ...

  8. 基于 Express 搭建一个node项目 - 起步

    一,如何基于 Express 搭建一个node项目 什么是Express 借用官方的介绍,Express是一个基于Node.js平台的极简.灵活的web应用开发框架,它提供了一系列强大的特性,帮助你创 ...

  9. python -m http.server 搭建一个简易web下载服务器

    在打vulnhub靶场的时候遇到的一个问题 目录 一.进到需要发送的安装包目录 二.开启http服务 三.访问服务器 一.进到需要发送的安装包目录 比如设置一个专门发送,传输的文件的文件夹,cmd命令 ...

随机推荐

  1. ceph erasure默认的min_size分析

    引言 最近接触了两个集群都使用到了erasure code,一个集群是hammer版本的,一个环境是luminous版本的,两个环境都出现了incomplete,触发的原因有类似的地方,都是有osd的 ...

  2. Python_异常处理、调试

    1.try except 机制 # 错误处理 # 一般程序都要用到错误捕获,当没有加且有错误的时候Python解释器会执行错误捕获,且是一层层向上捕获[所以问题点会在最下面] try: print(' ...

  3. 面试常问的 25+ 个 Linux 命令

    作为一个Java开发人员,有些常用的Linux命令必须掌握.即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令.因为很多服务器上都是Linux系统.所以,要和服 ...

  4. PHP+Ajax点击加载更多内容

    css样式: <style type="text/css"> #more{margin:10px auto;width: 560px; border: 1px soli ...

  5. python-网络安全编程第五天(爬虫模块BeautifulSoup)

    前言 昨晚学的有点晚 睡得很晚了,今天早上10点多起来吃完饭看了会电视剧就瞌睡了一直睡到12.50多起来洗漱给我弟去开家长会 开到快4点多才回家.耽搁了不少学习时间,现在就把今天所学的内容总结下吧. ...

  6. IntelliJ IDEA 2020.2.3永久破解激活教程 - 2020.10.27

    申明:本教程 IntelliJ IDEA 破解补丁.激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除 不花钱 的方式 IDEA 2020.2 激活到 2089 年 注意:教程适 ...

  7. 新鲜出炉!面试90%会被问到的Java多线程面试题,史上最全系列!

    前言 最近很多粉丝朋友私聊我说能不能给整理出一份多线程面试题出来,说自己在最近的面试中老是被问到这一块的问题被问的很烦躁,前一段时间比较忙没时间回私信,前两天看到私信我也是赶紧花了两天给大家整理出这一 ...

  8. jQuery 第十章 ajax 什么是回调地狱 优化回调地狱

    回调地狱 什么是回调地狱,回调函数,一个嵌套着一个,到最后,缩略图成了 一个三角形, 造成了可阅读性差,可阅读性差就代表代码的可维护性 和 可迭代性差,最后还有一个就是可扩展性差. 也不符合设计模式的 ...

  9. Unity减少构建安装包的体积(210MB减小到7MB)

    概述 项目简介 由于是公司内做的项目,不方便开源,就只分享优化过程吧. 项目信息 逐日是一个移动端单机小游戏,使用Unity开发,目前已将项目使用的Unity升级到2019.4.14f1c1 (3e5 ...

  10. 企业级LINUX自动化运维工具Ansible实战课程下载

    什么是Ansible? Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量 ...