mongodb+express做本地服务器出现的问题
小白求助,在观摩了其他大腿的代码后,想用express和mongo搭建一个本地的服务器,控制台报错
OPTIONS http://127.0.0.1:8889/api/ueser/signup net::ERR_CONNECTION_REFUSED
mongodb就是进行了一些基本的环境配置,nodejs能成功连接服务器,但是访问不了具体的页面
db.js
const mongoose = require('mongoose')
const Schema = mongoose.Schema
mongoose.Promise = global.Promise;
const database=mongoose.connect("mongodb://127.0.0.1:27017/santu")
database.connection.on('error', function(error){
console.log('数据库santu连接失败:' + error)
return
})
database.connection.once('open', function(){
console.log('数据库santu连接成功')
// callback()
})
const userSchema = new Schema({
name: {type: String},
pwd: {type: String},
time: {type: Date, default: Date.now}
})
const db = {
userModel: database.model('userModel', userSchema)
}
module.exports = db
api.js
const db = require('./db')
module.exports = function (app) {
app.all("*",function(req,res,next){
res.writeHead(200, { "Content-Type": 'application/json', "Access-Control-Allow-Origin":"*" })
res.header('Access-Control-Allow-Origin', '*')
res.header('Access-Control-Allow-Headers', 'X-Requested-With')
res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS')
res.header("X-Powered-By",' 3.2.1')
res.header("Content-Type", "application/json;charset=utf-8")
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","*");
next();
});
//===================
//接收登录信息
//===================
app.get('/api/user/login',function(req,res){
db.userModel.findOne({name:req.query.name},function(err,doc){
if(!err){
if(!doc){
res.json({code:1})//用户名不存在
return
}else{
if(req.query.pwd!=doc.pwd){
res.json({code:-1})//密码错误
}else{
res.json({code:0})//登录成功
}
}
}else{
console.log('出问题啦'+err)
}
})
})
//=================
//注册提交及验证
//=================
app.get('api/user/signup',function(req,res){
db.userModel.findOne({name:req.query.name},function(err,doc){
if(!err){
if(doc){
res.json({code:1})//用户名存在
}else{
db.userModel.create({
name:req.query.name,
pwd:req.query.pwd
},function(err,doc){
if (!err) {
res.json({code:0})//用户创建成功
}else{
console.log('出问题啦',err)
}
})
}
}else{
console.log('出问题啦',err)
}
})
})
app.get('*', function(req, res){
res.end('404')
})
}
index.js
const express = require('express')
const app = express()
const api = require('./api')
api(app)
app.listen(8889)
前端框架是 dva-react,前代码是
fetch('http://127.0.0.1:8889/api/ueser/signup', {
method: 'post',
body: JSON.stringify({
name: name,
pwd: password
}),
headers: {
'Content-Type': 'application/json'
}
})
之前本地是用的json-server来模拟的,不用跨域所以前端方面没有去处理跨域问题,mongodb也只是进行了初始化设置,哎。。。求大神帮忙
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你api定义的访问方式为GET,但是你前端去访问的时候用的又是POST...