为啥即使在节点服务器和 mongodb 加载后 localhost 也没有加载?

Posted

技术标签:

【中文标题】为啥即使在节点服务器和 mongodb 加载后 localhost 也没有加载?【英文标题】:Why localhost not loading even after node server and mongodb loaded?为什么即使在节点服务器和 mongodb 加载后 localhost 也没有加载? 【发布时间】:2020-07-17 09:29:04 【问题描述】:

我已经开始学习 MEAN 开发。我已经设置了我的快速服务器以及我的 mongodb 连接。在终端中运行 node server 时,服务器开始运行,mongo 也能够连接,但 localhost:8081/api/videos 没有加载。我清除了缓存和 cookie,但仍然没有解决方案。我附上下面的代码。

server.js

const express = require('express');
const bodyParser = require('body-parser');
const path = require('path');
const api = require('./server/routes/api');

// Port for express server
const port = 8081;

const app = express();

app.use(express.static(path.join(__dirname,'dist/mean')));
app.use(bodyParser.urlencoded(extended: true));
app.use(bodyParser.json);
app.use('/api', api);

app.get('*', (req,res)=> 
    res.sendFile(path.join(__dirname, 'dist/mean/index.html'));
);

app.listen(port, function()
    console.log('Server running at localhost:' + port);
);

api.js

const express = require('express');
const router = express.Router();
const mongoose = require('mongoose');
const Video = require('../models/video');

// Creating mongo db connection
const db = 'mongodb+srv://<username>:<password>@training-qfjgb.mongodb.net/test?retryWrites=true&w=majority';
mongoose.Promise = global.Promise;
mongoose.connect(db,  useUnifiedTopology: true, useNewUrlParser: true , err => 
    if(err) 
      console.log('Error: '+err);
    
    else 
      console.log('Successfully connected to mongodb');
    
  );

router.get('/videos', function(req, res)
    console.log('Get request for all videos');
    Video.find().exec(function(err, videos)
      if(err)
      console.log('Error retrieving videos');
      else
      res.json(videos);
    );
);

module.exports = router;

video.js(这是用于架构的)

const mongoose = require('mongoose');

const Schema = mongoose.Schema;

// Creating database schema

const videoSchema = new Schema(
    title: String,
    url: String,
    description: String
);

// Creating model of database videoplayer as model and then exporting
module.exports = mongoose.model('video', videoSchema, 'videoplayer');

【问题讨论】:

你怎么知道“本地主机没有加载?”你用http://localhost:8081/videos/了吗?请edit您的问题。 @O.Jones 是的,我已经完成了 【参考方案1】:
const db = 'mongodb+srv://username:password@training-qfjgb.mongodb.net/test?retryWrites=true&w=majority';

用户名:密码应该更改。 admin:12345(如你所用)

【讨论】:

以上是关于为啥即使在节点服务器和 mongodb 加载后 localhost 也没有加载?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用猫鼬以编程方式在节点服务器上仅预加载一次 MongoDB 文档

Flutter:为啥我的构建器在 Web 服务调用后没有重新加载?

如何在没有时间的情况下将 LocalDate 保存到 MongoDB(即使我只保存日期,为啥 mongo 会随时间保存日期)?

为啥这个 PHP MongoDB 查询即使有结果也不返回任何结果?

MongoDB:即使查询的所有字段都被索引,为啥我的扫描对象值很高?

在 mongodb 和节点 js 中堆内存不足