mongodb+express做本地服务器出现的问题

发布于 2022-09-05 23:37:52 字数 3685 浏览 9 评论 0

小白求助,在观摩了其他大腿的代码后,想用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

稀香 2022-09-12 23:37:52

你api定义的访问方式为GET,但是你前端去访问的时候用的又是POST...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文