Node.js之express框架(三)
程序员文章站
2022-06-15 18:42:30
...
今天实现登录注册,数据传入mongodb数据库功能
一.先终端安装express,mongodb
二.建立一个连接mongo数据库的js文件,取名mongos.js
const mongodb = require('mongodb')
const MongoClient = mongodb.MongoClient;
const dbUrl = 'mongodb://localhost:27017'
function getTestDB(callback){
MongoClient.connect(dbUrl,function(err,client){
if(err){
console.log(err)
return
}
console.log('连接成功')
const testDb = client.db('store') //db就是选取数据库的
callback(testDb)
})
}
module.exports={
getTestDB
}
三.建立一个js文件
const express = require('express')
const {getTestDB} =require('./mongos') //引入之前的js文件
const bodyParser = require('body-parser')//解析post数据
const path = require('path')//处理路径的核心模块
const app =express()
app.use(bodyParser.json())
app.use(express.static(path.join(__dirname,"..","public")))//避免不同操作系统的路径错误
注册代码
app.post('/register',function(req,res){. //register,注册html
console.log(req.body.login_name)
getTestDB(function(storeDb){
storeDb.collection('users').insertOne(req.body,function(err,result){
if(err){
res.send({
status:201,
msg:err.message
})
return
}
res.send({
status:200,
msg:'成功',
data:{
user_id:result.insertedId
}
})
})
})
})
登录代码
app.post('/login',function(req,res){
const login_name = req.body.login_name
const password = req.body.password
getTestDB(function(storeDb){
storeDb.collection('users').find({login_name:login_name,password:password}).toArray(function(err,result){
if(err){
res.send({
status:202,
mes:'数据库连接错误'
})
return
}
if(result.length !==0){
res.send({
status:200,
mes:'ok'
})
}else{
res.send({
status:202,
mes:'登录失败'
})
}
})
})
})
//3000端口服务器
const port =3000;
app.listen(port,function(err){
if(err){
console.log(err)
return
}
console.log('成功')
})
四.先实现注册页面,我们通过axios传递信息
html
<div>
登录名: <input type="text" id="login_name">
密码: <input type="password" id="password">
确认密码: <input type="password" id="confirm_password">
<button onclick="register()">注册</button>
</div>
js
function register(){
var login_name = document.getElementById('login_name').value
var password = document.getElementById('password').value
var confirm_password = document.getElementById('confirm_password').value
if(password.trim()===''){
alert('请输入密码')
return
}
if(password!==confirm_password){
alert('密码不一致')
return
}
axios.post('/register',{
login_name:login_name,
password:password,
}).then(function(result){
if(result.data.status ===200){
location.href='./login.html'
}
})
}
五.实现登录页面
html
<div>
登录名: <input type="text" id="login_name">
密码: <input type="password" id="password">
<button onclick="login()">登录</button>
</div>
js
function login(){
var login_name = document.getElementById('login_name').value
var password = document.getElementById('password').value
axios.post('/login',{
login_name:login_name,
password:password,
}).then(function(result){
})
}
下一篇: anaconda/conda 使用教程