节点,快递,猫鼬不能一起工作

时间:2020-03-11 11:09:49

标签: node.js mongodb express

Hej人

我尝试创建一些全栈应用程序(基于一个教程),但在了解支持部分的工作方式时遇到了一些问题。从理论上讲,然后我第一次完成了本教程,一切正常。但是现在,我尝试在此基础上进行一些新的尝试,我发现有几件事我不理解。基本上,为什么它不起作用。

我生成Express应用。我的app.js看起来:

var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var mongoose = require('mongoose');
var cors = require('cors');

mongoose.connect('mongodb://localhost/covid', {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  useCreateIndex: true
}).then(() =>  console.log('connection successful'))
  .catch((err) => console.error(err));

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var casesRouter = require('./routes/cases');

var app = express();

app.use(cors());
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/api', casesRouter);

module.exports = app;

routers / cases.js:

var express = require('express');
var router = express.Router();
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var Cases = require('../models/Cases.js');

server.listen(4000)

// socket io
io.on('connection', function (socket) {
    socket.on('newdata', function (data) {
        io.emit('new-data', { data: data });
    });
    socket.on('updatedata', function (data) {
      io.emit('update-data', { data: data });
    });
});

// list data
router.get('/', function(req, res) {
    Cases.find(function (err, cases) {
        if (err) return next(err);
        res.json(cases);
    });
})

module.exports = router;

和架构:

var mongoose = require('mongoose');

var CasesSchema = new mongoose.Schema({
  id: String,
  name: String,
  location: String,
  state: String,
});

module.exports = mongoose.model('Cases', CasesSchema);

好的,就是全部。

所以现在我可以通过nodemon从控制台运行它。在控制台中,一切正常。没有错误,并提示一切正常。但是应用无法正常工作:

1)我希望这一部分:

mongoose.connect('mongodb://localhost/covid', {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  useCreateIndex: true
}).then(() =>  console.log('connection successful'))
  .catch((err) => console.error(err));

现在应该为我创建新的模式“ covid”,其对象为具有ID,名称,位置,状态的项Cases。没发生我安装了Compass以便最容易地检查我的mongodb,并且可以看到我没有像covid这样的东西。好的,我是手动创建的,但是据我了解,应该在运行nodemon之后自动完成。

2)我希望我可以通过邮递员检查我的后端。 https://localhost:3000/api/(3000-nodemon默认端口),但我

无法获得任何响应连接到时发生错误 https://localhost:3000/api/

这就是一切。在控制台和邮递员中我都看不到此错误。

也许我对Express应用程序中的端口不了解,或者对mongoDB不了解。但是谷歌没有帮助我。它只会把我的头弄得更大。因此,也许有人可以向我解释它应该如何工作以及为什么?

0 个答案:

没有答案