吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5015|回复: 7
收起左侧

[其他转载] 前端用node+mysql实现简单服务端

  [复制链接]
mmnnbbvv005 发表于 2019-4-2 13:01
本帖最后由 mmnnbbvv005 于 2019-4-2 13:12 编辑

node express + mysql实现简单服务端

前端新人想写服务端不想学PHP等后端语言怎么办,那就用js写后台吧!
这也是我这个前端新人的学习成果分享,如有那些地方不对,请给我指出。

1.准备工作

node:官网下载,然后配置环境变量,在cmd中输入node -v检查是否配置成功。
npm:集成在node里了,npm -v检查。
MySQL:官网下载安装,配置请问度娘。

2.构建服务端

首先先在项目文件夹里新建一个server的新文件夹,新建一个index.js服务端入口文件,一个mysql.js配置文件,一个api.js接口文件。

server.jpg

index.js

const userApi = require('./api')
const bodyParser = require('body-parser')
const express = require('express')
const app = express()

// 中间件
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))

app.use('/sqlapi', userApi)
// 监听端口
app.listen(3000)
console.log('success listen at port:3000')

mysql.js

var mysql = require('mysql')
var connection = mysql.createConnection({
  host: 'localhost',//数据库地址
  user: 'root', //连接数据库的用户名
  password: '',//连接数据库的密码
  database: ''//数据库名
})

module.exports = connection

api.js

var mysql = require('./mysql')
var express = require('express')
var router = express.Router()
mysql.connect()
router.post('/login', (req, res) => {
  var params = req.body
  mysql.query("SELECT * FROM `user` WHERE `username` = '" + params.username + "' AND `password` = '" + params.password + "'", function (err, result) {
    if (err) {
      console.log(err)
    }
    if (result) {
      if (result.length > 0) {
        res.json({ message: '登录成功', status: 1 })
      } else {
        res.json({ message: '用户名或密码错误', status: 0 })
      }
      res.end('is over')
    }
  })
})

这样服务端就完成了,然后进入server文件夹,cmd运行命令

node index

启动服务端

3.前端访问

服务端构建完成后就可以在前台用ajax访问了,这里我用我正在写的个人项目做演示,我个人项目用的是vue-cli3,请求用的是axios,并且封装了拦截器,所以可能有些不同,只需要按照常规的post请求即可。

注意,因为服务端和前端端口不一致,所以存在跨域问题,需要进行跨域
这是我前端api封装的代码,不含拦截器

import request from '@/utils/request'

/**
 * 登录
 */
export function login (data) {
  return request({
    url: '/sqlapi/login',
    method: 'post',
    data: {
      username: data.username,
      password: data.password
    }
  })
}

调用页面

login () {
      var _this = this
      if (this.disabled) return
      this.disabled = true
      login({ username: this.username, password: this.password }).then(function (data) {
        _this.disabled = false
        if (data.data.status) {
          Toast(data.data.message)
          _this.$store.dispatch('SetUserInfo', { username: _this.username, login: true })
        } else {
          Toast(data.data.message)
        }
      })
    }

跨域配置:
跨域我是在前台进行配置的,因为还用到其它接口,也可以在服务端进行配置噢。

proxy: {
      '/sqlapi': {
        target: 'http://localhost:3000/sqlapi',
        ws: true,
        changeOrigin: true,
        pathRewrite: {
          '^/sqlapi': ''
        }
      }
    }

mysql 建表

首先先建一个表,比如账户信息,用户名作为主键,随便写两个字段测试一下
sql.jpg
登录界面填好账号密码后,点击登录请求
test.jpg
查看返回数据,请求成功
login.jpg

这样就实现了node express + mysql的服务端,是不是很简单,觉得有用的话就给我评个分吧!

完整项目地址:github




解压密码:52pojie
Vue-JqRead.rar (448 KB, 下载次数: 17)

免费评分

参与人数 6吾爱币 +10 热心值 +6 收起 理由
yunos1995 + 1 + 1 我很赞同!
白日梦梦妖 + 1 + 1 谢谢@Thanks!
hwq + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 5 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
kuangkung + 1 + 1 谢谢@Thanks!
yimocoding + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xblang 发表于 2019-4-2 13:37
好好学习天天向上。。。
kuangkung 发表于 2019-4-2 13:43
凌长天 发表于 2019-4-2 14:09
psx1lin 发表于 2019-4-3 08:11

好好学习
谢谢分享
吃西瓜的鲨鱼 发表于 2019-4-6 17:38
感谢楼主,支持一哈。
nlovestudy 发表于 2019-7-4 19:59
想问一下是用什么软件运行哈
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 02:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表