为啥 localhost 不适用于节点 js api
Posted
技术标签:
【中文标题】为啥 localhost 不适用于节点 js api【英文标题】:why localhost not working for node js api为什么 localhost 不适用于节点 js api 【发布时间】:2021-05-23 21:03:17 【问题描述】:我正在 nodejs 和 mongodb 中创建 api,但 url 不起作用这里是文件:
app.js
const express = require('express')
const mongoose = require('mongoose')
const url = 'mongodb://localhost/AlienDBex'
const app = express()
mongoose.connect(url, useNewUrlParser:true)
const con = mongoose.connection
con.on('open', () =>
console.log('connected...')
)
app.use(express.json())
const alienRouter = require('./routes/aliens')
app.use('/aliens',alienRouter)
app.listen(9000, () =>
console.log('Server started')
)
aliens.js
const express = require('express')
const router = express.Router()
const Alien = require('../models/alien')
router.get('/', async(req,res) =>
try
// const aliens = await Alien.find()
res.json('aliens')
catch(err)
res.send('Error ' + err)
)
module.exports = router
alien.js
const mongoose = require('mongoose')
const alienSchema = new mongoose.Schema(
name:
type: String,
required: true
,
tech:
type: String,
required: true
,
sub:
type: Boolean,
required: true,
default: false
)
module.exports = mongoose.model('Alien',alienSchema)
网址:https://localhost:9000/aliens 不起作用。 我已经正确安装了节点 js,但 localhost 不适用于上述 url。 请帮帮我,我已经安装了所有的包,但它不起作用。
【问题讨论】:
控制台的输出是什么? 除了 [nodemon] 由于更改而重新启动之外,控制台中没有任何内容... [nodemon] 开始node app.js
(node:6136) DeprecationWarning: 当前的服务器发现和监控引擎已被弃用,并且将在未来的版本中删除。要使用新的服务器发现和监控引擎,请将选项 useUnifiedTopology: true 传递给 MongoClient 构造函数。 (使用node --trace-deprecation ...
显示警告的创建位置)服务器开始连接...
【参考方案1】:
因为 localhost url 也有一个端口号。 现在,如果你正确安装了 mongodb,最可能的 url 应该是这样的。
const url = "mongodb://localhost:27017/yourCollectionName"
【讨论】:
无法解决问题。请提前提供任何其他解决方案。【参考方案2】:你为什么使用 https ?仅对 localhost 使用 http,因为您在本地没有 ssl 设置
http://localhost:9000
【讨论】:
以上是关于为啥 localhost 不适用于节点 js api的主要内容,如果未能解决你的问题,请参考以下文章
mirage.js 不适用于 Angular 中的子 url 路径(仅适用于根路径)