node.js+express+mysql搭建后台服务

为实现下面的几个基本增、删、改、查,写个后端服务
在这里插入图片描述

环境搭建

1.node.js安装

前往node.js官网https://nodejs.org/zh-cn/ 下载node,本人安装在D:\node目录下,安装完毕后记得在系统环境变量里添加'D:\node\' ,打开控制台输入node -v 检查node 是否安装配置成功

在这里插入图片描述
2.express安装

node成功安装完毕之后,打开控制台全局安装express,执行npm install express -g 
express 安装完毕之后全局安装express-generator(Express 应用程序生成器),npm install express-generator -g 
express-generator安装成功之后执行express --version,检查以上两步是否安装成功
在控制台切换到D:\express, 执行express '项目文件夹的名字' -e,例: express demoExpress -e  , ( -e:  使用 ejs 模板,也可省略 '-e' , 使用默认模板),即可生成D:\express\demoExpress 目录
控制台cd demoExpress 后,执行npm install 安装项目依赖 ,Express 应用程序初始化完毕
具体可参考官网:https://www.expressjs.com.cn/starter/generator.html

3.Mysql 安装

前往mysql 官网下载https://www.mysql.com/downloads/ 进行安装,本人安装在D:\mysql8.0.18\mysql-8.0.18-winx64目录下
安装完毕之后,记得在系统环境变量里面添加 D:\mysql8.0.18\mysql-8.0.18-winx64\bin 

在这里插入图片描述

以管理员权限打开系统控制台,cd D:\mysql8.0.18\mysql-8.0.18-winx64\bin 目录下,
初始化数据库:mysqld --initialize --console
输入以下安装命令:mysqld install
启动数据库输入以下命令:net start mysql
关闭数据库输入以下命令:net stop mysql

登录 MySQL
当 MySQL 服务已经运行时, 我们可以通过 MySQL 自带的客户端工具登录到 MySQL 数据库中, 首先打开命令提示符, 输入以下格式的命名:

mysql -h 主机名 -u 用户名 -p
参数说明:
-h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;
-u : 登录的用户名;
-p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。

如果我们要登录本机的 MySQL 数据库,只需要输入以下命令即可:
mysql -u root -p
按回车确认, 如果安装正确且 MySQL 正在运行, 会得到以下响应:

Enter password:
若密码存在, 输入密码登录, 不存在则直接按回车登录
然后命令提示符会一直以 mysq> 加一个闪烁的光标等待命令的输入
之后可以进行相关数据库操作
, 输入 exit 或 quit 退出登录。

项目依赖安

项目结构
在这里插入图片描述
mysql依赖安装
在D:\express\demoExpress目录下npm install mysql ,安装成功后,在config目录下新建mysqlConf.js

let mysql = require("mysql") // 导入mysql模块

let mysql_config = { // mysql采用pool连接池基础配置 (采用pool连接池与不采用配置略有不同,具体请查看文档)
    connectionLimit : 10, // 最大连接数
    host            : '127.0.0.1', // 本地搭建则本机ip,远程服务器则远程服务器ip 
    post:'3306',
    user            : 'root', // mysql 账户
    password        : '123456', // mysql 密码
    database        : 'lpsDatabase' // 要操作的数据库// 这里等数据库创建之后放开就可以
}
let pool = mysql.createConnection(mysql_config); // 创建连接
//connect 连接数据库
pool.connect(err=>{
  if(err) throw err;
  console.log('mysql connected ......')
})
// let sql = 'CREATE DATABASE  lpsDatabase'
// pool.query(sql,(err,result) => {
//     if(err) throw err
//     // console.log(result)
//     console.log('Database created ...')
// })
var sql = "CREATE TABLE if not exists users (id INT, username VARCHAR(255))";
pool.query(sql, function (err, result) {
if (err) throw err;
  console.log("Table created");
});

module.exports = {
    pool
}

本人新建个sql文件夹存放sql语句,在其下面新建users_dao.js

let { pool } = require("../config/mysqlConf.js")
module.exports = {
    add: function (user, callback) { // users表中增加user操作
        let sqlparam = [
            user.id?user.id:"",
            user.username?user.username:""
        ]
        pool.query("INSERT INTO users (id, username) VALUES (?, ?);", sqlparam, function (error, result) {
            if (error) throw error;
            callback(result);
        });
    },
    deleted: function(params, callback) { // users表中删除指定user操作
        let {id} = params
        let sqlparam = [id]
        pool.query("DELETE FROM users WHERE id = ?;", sqlparam, function (error, result) {
            if (error) throw error;
            callback(result);
        });
    },
    query: function(params, callback) { // users表中查询指定user操作
        let {id} = params
        let sqlparam = [id]
        pool.query("SELECT * FROM users WHERE id = ?;", sqlparam, function (error, result) {
            if (error) throw error;
            callback(result[0]);
        });
    },
    queryAll: function(params, callback) { // users表中查询全部user操作
      pool.query("SELECT * FROM users", params, function (error, result) {
          if (error) throw error;
          callback(result);
      });
    },
    update: function(params, callback) { // users表中更新user操作
      pool.query("UPDATE users set username= ? where id = ?;", [params.username,params.id], function (error, result) {
          if (error) throw error;
          callback(result);
      });
    },
}

router文件下面的index.js

var express = require('express');
var router = express.Router();
let { add, deleted, query ,queryAll,update} = require("../sql/users_dao.js"); // 数据库操作
/* GET home page. */
// 添加用户 post请求
router.post('/adduser', function(req, res, next) {
  let urlParam = req.body;
  add(urlParam,function(success){
    res.json({
      status : "200",
      data : success
    });
  })
});
//update
router.post('/updataUser', function(req, res, next) {
  let urlParam = req.body;
  update(urlParam,function(success){
    res.json({
      status : "200",
      data : success
    });
  })
});
// 删除指定用户 get请求
router.get('/userDeleteByid', function(req, res, next) {
  let urlParam = {
    id: req.query.id
  };
  console.log(urlParam);
  deleted(urlParam,function(success){
    res.json({
      status : "200",
      data : success
    });
  })
});
// 获取指定用户信息 get请求
router.get('/userDetail', function(req, res, next) {
  let urlParam = {
    id: req.query.id
  };
  query(urlParam,function(success){
    res.json({
      status : "200",
      data : success
    });
  })
});
// 获取全部用户信息 get请求
router.get('/userList', function(req, res, next) {
  queryAll([],function(success){
    res.json({
      status : "200",
      data : success
    });
  })
});

module.exports = router;

最后在app.js里引入以上文件即可
require(’./config/mysqlConf.js’);
var indexRouter = require(’./routes/index’);
app.use(’/users’, indexRouter);

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
// var mongoose = require('./config/mongoose.js');
// var db = mongoose();

require('./config/mysqlConf.js');

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')));

app.use('/users', indexRouter);
// app.use('/', 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) {
  // 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;

以管理员身份打开控制台,启动mysql服务器: net start mysql
在D:\express\demoExpress启动express :npm start
以上完成本地后端服务开发,前端开发按正常的来即可,请求后端服务的代理地址别搞错了

 '/users': {
        target: 'http://127.0.0.1:3000/',  //目标接口域名
        changeOrigin: true,  //是否跨域
        secure:true,
        // pathRewrite: {
        //   '^/lps': ' '
        // }
      },


以上有疑问请留言哈!感谢各位的浏览!

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 全栈完整项目包括uniapp小程序、vue后台管理系统、node.js完整项目和mysql数据库。这个项目的目标是开发一个全面的解决方案,用于构建一个多平台的应用程序。 首先,我们将使用uniapp小程序开发前端界面。uniapp是一个跨平台开发框架,可以同时适用于微信小程序、支付宝小程序、H5、安卓和iOS等平台。我们可以使用uniapp提供的各种组件和API来创建用户界面和交互。 其次,我们将使用vue框架开发后台管理系统。Vue是一个轻量级的JavaScript框架,它提供了一种优雅的方式来构建用户界面。我们可以使用Vue的组件化开发思想和工具来构建管理系统的各个模块和功能。 然后,我们将使用node.js开发后端服务器。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,可以用于构建高性能的网络应用程序。我们可以使用Node.js的各种模块和框架来处理前端请求、访问数据库、实现业务逻辑等。 最后,我们将使用mysql数据库存储数据。MySQL是一个流行的关系型数据库管理系统,可以用于存储和管理应用程序中的数据。我们可以使用mysql的SQL语言来定义表结构、插入和更新数据、执行查询等操作。 这个全栈完整项目将涵盖前端开发、后台开发、数据库设计和管理等多个方面。通过使用不同的技术和工具,我们可以构建一个功能齐全、用户友好的应用程序,并能在多个平台上运行。 ### 回答2: 全栈完整项目是指开发人员可以同时处理前端、后端和数据库的开发工作。在这个问题中,需要开发一个包括uniapp小程序、vue后台管理系统和node.js完整项目的全栈应用,并使用mysql数据库进行数据存储。 首先,我会基于uniapp框架开发一个小程序。uniapp是一个跨平台开发框架,可以同时开发iOS和Android平台的应用。我将使用vue语法进行开发,利用uniapp提供的组件和API实现小程序的各种功能,如用户登录、数据展示等。 其次,我会开发一个vue后台管理系统。vue是一个流行的前端框架,用于构建单页应用。我将使用vue和element-ui等插件来实现后台管理系统的前端界面,包括用户管理、数据统计等功能,并通过API与后端进行数据交互。 然后,我会使用node.js开发一个完整的后端项目。node.js是一个基于JavaScript运行的服务器端框架,具有高效、轻量级和事件驱动等特点。我将使用node.js编写服务器端的逻辑处理代码,包括用户认证、数据处理等功能。同时,我会使用express框架来简化开发流程,并使用mysql数据库进行数据的存储和查询。 最后,我会使用mysql数据库进行数据管理。mysql是一种常见的关系型数据库管理系统,我将使用它来设计和管理我所开发的全栈应用所需要的表结构,并使用SQL语言进行数据的增删改查操作。 综上所述,我将使用uniapp、vue、node.jsmysql等技术栈,开发一个包含小程序、后台管理系统和完整的后端项目的全栈应用。这个应用将具备完整的功能,同时满足用户的需求,并且可以对数据进行有效地管理。 ### 回答3: 全栈开发是指一个开发者可以独自负责开发一个完整的项目,包括前端、后端和数据库的搭建与开发。以下是一个使用uniapp小程序作为前端、vue作为后台管理系统、node.js作为后端、mysql作为数据库的全栈完整项目的描述。 该项目的目标是开发一个综合性的小程序,实现包括用户登录注册、商品展示、购物车管理、订单生成等功能。具体的技术选型如下: 1. 前端部分使用uniapp小程序进行开发。Uniapp是一个使用 Vue.js 进行开发跨平台应用的前端框架,支持一次开发,多平台发布。开发者可以使用Vue的语法进行UI界面的开发,并集成了微信小程序的API。 2. 后台管理系统使用vue进行开发。Vue是一个轻量级的JavaScript框架,可以快速搭建用户友好的界面。通过使用Vue,我们可以开发出一个方便管理商品、订单等数据的后台管理系统。 3. 后端使用node.js进行开发。Node.js是一个基于Chrome V8引擎的开源后台运行环境,使用JavaScript进行编写。通过使用Node.js,我们可以实现用户登录注册、商品数据的增删改查等后端逻辑。 4. 数据库使用mysql进行搭建MySQL是一个开源的关系型数据库管理系统,提供了高效稳定的数据存储和查询。通过使用mysql,我们可以存储用户信息、商品信息、订单信息等数据。 在项目开发过程中,我们可以使用uniapp提供的API与微信小程序进行交互,实现用户登录注册、商品展示等功能。通过vue开发后台管理系统,可以实现对商品和订单等数据的管理。并且,通过node.js连接mysql数据库,实现对数据的增删改查操作。 全栈开发者需要具备前端、后端以及数据库的知识和能力,能够独立进行应用开发和维护。这个全栈完整项目的开发将会全面锻炼开发者的技术水平,并且能够快速响应需求变化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值