node连接mysql数据库实现登录注册接口

node连接mysql数据库实现登录接口

创建node项目

在小窗口使用npm创建,生成package.json文件

npm init

项目结构目录

在这里插入图片描述

创建db.js链接mysql数据库

const mysql = require('mysql');

exports.base = (sql, data, callback) => {
	const connection = mysql.createConnection({
		host: 'localhost',
		user: 'root',
		password: 'root',
		database: 'test' 
	});
	connection.connect();

	connection.query(sql, data, function(error, results, fields) {
		if (error) throw error;
		callback(results);
		console.log('数据库连接成功');
	})
	connection.end();
}

app.js

// 创建express服务器
const express = require('express')
const app = express()
// 注册解析 表单数据的 body-parser
const bodyParser = require('body-parser')
// 将请求响应设置content-type设置为application/json
const router = require('./routes/users.js')
app.use('/api/*', function(req, res, next) {
	// 设置请求头为允许跨域
	res.header("Access-Control-Allow-Origin", "*");
	// 设置服务器支持的所有头信息字段
	res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
	// 设置服务器支持的所有跨域请求的方法
	res.header("Access-Control-Allow-Methods", "POST,GET");
	// next()方法表示进入下一个路由
	
	next();
});
// post
app.use(bodyParser.urlencoded({
	extended: false
}))
// 处理json格式的参数
app.use(bodyParser.json())
// 配置路由
app.use(router)
//设置cookies
// 服务器已经启动
app.listen('3003', function() {
	console.log('running...')
})

users.js 链接接口

const express = require('express')
const router = express.Router()
const services = require('../services/userService.js')
// 登录功能
router.post('/api/login', services.login)
//注册功能
router.post('/api/register', services.register)
module.exports = router

userService.js 对于接口进行处理

const db = require('../sql/db.js');
const jwt = require('../token.js');
exports.login = (req, res) => {
	let {
		username,
		password
	} = req.body;
	// 查询语句
	let sql = 'select * from user where username = ?'
	db.base(sql, username, (result) => {
		if (!result.length) {
			return res.json({
				status: -1,
				msg: '登录失败'
			})
		} else {
			if (result[0].password == password) {
				let token = jwt.creatToken({
					login: true,
					username: username
				});
				return res.json({
					status: 1,
					msg: '登录成功',
					token: token
				})
			}
			return res.json({
				status: -2,
				msg: '密码错误'
			})
		}
	})
}
exports.register = (req, res) => {
	let {
		username,
		password,
		token
	} = req.body;
	console.log(req.body);
}

运行app.js,项目运行成功,测试接口

node app.js

在这里插入图片描述

运行app.js,项目运行成功,测试接口

node app.js

在这里插入图片描述

到此一个node的登录接口就实现,需求什么样的接口,可以去扩展。

  • 9
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: 好的,我可以为你提供一个使用Node.js连接数据库并编写登录接口的示例。在这个示例中,我将使用MySQL作为数据库,并使用Express作为Node.js的Web框架。 首先,我们需要安装必要的依赖。在终端中运行以下命令: ``` npm install express mysql body-parser ``` 接下来,我们将创建一个名为`app.js`的文件,并将以下代码添加到文件中: ```javascript const express = require('express'); const mysql = require('mysql'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); const connection = mysql.createConnection({ host: 'localhost', user: 'your_mysql_username', password: 'your_mysql_password', database: 'your_database_name' }); connection.connect((err) => { if (err) throw err; console.log('Connected to database!'); }); app.post('/login', (req, res) => { const { username, password } = req.body; const sql = `SELECT * FROM users WHERE username = '${username}' AND password = '${password}'`; connection.query(sql, (err, result) => { if (err) throw err; if (result.length > 0) { res.send('Login success!'); } else { res.send('Invalid username or password'); } }); }); const port = 3000; app.listen(port, () => console.log(`Server running on port ${port}`)); ``` 在上面的代码中,我们首先引入了Express、MySQL和Body-parser模块。然后,我们创建一个名为`app`的Express实例,并配置Body-parser中间件,以便我们能够解析请求正文中的数据。 接下来,我们使用MySQL模块创建了一个名为`connection`的数据库连接。请确保将`your_mysql_username`、`your_mysql_password`和`your_database_name`替换为实际的值。 在登录接口的路由处理程序中,我们从请求正文中获取用户名和密码,并使用MySQL模块执行SQL查询。如果查询返回结果,则表示用户名和密码是有效的,否则表示它们是无效的。 最后,我们将服务器监听在端口3000上,并在控制台输出一条消息,以指示服务器已启动。 请注意,上面的代码仅用于示例目的,并不考虑安全性和其他最佳实践。在实际应用程序中,您应该实施更严格的安全性措施,例如对密码进行哈希处理,使用预备语句而不是直接将参数插入SQL查询中等。 ### 回答2: 使用Node.js连接数据库并编写一个登录接口,可以按照以下步骤进行操作: 1. 首先,确保已经安装了Node.js和适用于所选数据库的相关驱动程序。常见的数据库驱动程序有mysql、mongodb等。可以通过npm命令行安装这些驱动程序。 2. 在Node.js应用程序的文件中,引入所需的Node模块和数据库驱动程序。 3. 创建一个服务器以监听请求,并创建一个路由来处理登录功能的请求。例如,可以使用Express模块创建服务器和路由。 4. 在处理登录请求的路由函数中,获取来自请求的用户名和密码。 5. 连接数据库,使用数据库驱动程序的函数或方法来验证用户提供的用户名和密码是否与数据库中存储的一致。如果一致,返回登录成功的响应,否则返回登录失败的响应。 6. 关闭数据库连接。 下面是一个例子,假设使用MySQL作为数据库驱动程序,使用Express创建服务器和路由。 ```javascript const express = require('express'); const mysql = require('mysql'); const app = express(); const port = 3000; const db = mysql.createConnection({ host: 'localhost', user: 'your_username', password: 'your_password', database: 'your_database' }); app.get('/login', (req, res) => { const username = req.query.username; const password = req.query.password; db.query( 'SELECT * FROM users WHERE username = ? AND password = ?', [username, password], (error, results) => { if (error) throw error; if (results.length > 0) { res.send('Login successful'); } else { res.send('Login failed'); } } ); }); db.connect((error) => { if (error) throw error; console.log('Connected to the database'); app.listen(port, () => { console.log(`Server is running on port ${port}`); }); }); ``` 请注意,上述代码仅供参考,实际应用中需要根据具体情况进行修改和完善,例如增加错误处理和安全性措施。 ### 回答3: 使用Node.js连接数据库并编写一个登录接口的步骤如下: 首先,需要确定要连接数据库类型,例如MySQL、MongoDB等,并安装相应的数据库驱动程序。 接下来,在Node.js项目的入口文件中引入所需的模块和库,例如`express`用于创建服务器,`mysql`或`mongoose`用于连接和操作数据库。 在代码中创建一个名为`login`的路由,监听前端发送的登录请求。可以使用`POST`方法获取请求中的用户名和密码。 通过数据库驱动程序提供的连接方法,连接数据库。例如,使用MySQL时,可以使用`mysql.createConnection`方法来创建连接。 在接收到登录请求后,构建相应的SQL查询语句,查询数据库中是否存在该用户并验证其密码是否匹配。 如果查询结果中存在该用户且密码正确,返回登录成功的信息给前端;否则,返回登录失败的信息。 最后,在登录接口中导出路由,并在服务器配置中添加该路由,启动服务器。 整个过程类似如下所示(以使用MySQL为例): ```javascript const express = require('express'); const mysql = require('mysql'); const app = express(); const port = 3000; app.use(express.json()); app.use(express.urlencoded({ extended: false })); const db = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'mydb' }); db.connect((err) => { if (err) throw err; console.log('Connected to database'); }); app.post('/login', (req, res) => { const { username, password } = req.body; const sql = `SELECT * FROM users WHERE username = '${username}' AND password = '${password}'`; db.query(sql, (err, result) => { if (err) throw err; if (result.length > 0) { res.status(200).send('Login successful'); } else { res.status(401).send('Invalid username or password'); } }); }); app.listen(port, () => { console.log(`Server is running on port ${port}`); }); ``` 以上是一个简单的基于Node.js的登录接口,可以连接MySQL数据库,并根据请求中的用户名和密码验证登录。具体逻辑和细节可以根据需求进行调整和优化。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值