Javascript Can';t使用mongoose和node服务静态文件
关于StackOverflow的第一个问题。在我的一个路由上提供公共目录时遇到问题,它在除/player/:id/intro路由之外的所有其他路由上都有效。以下是我的app.js:Javascript Can';t使用mongoose和node服务静态文件,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,关于StackOverflow的第一个问题。在我的一个路由上提供公共目录时遇到问题,它在除/player/:id/intro路由之外的所有其他路由上都有效。以下是我的app.js: var express=require('express'), app=express(), mongoose=require('mongoose'), Player=require('./models/player'), bodyParser=require('body-parser
var express=require('express'),
app=express(),
mongoose=require('mongoose'),
Player=require('./models/player'),
bodyParser=require('body-parser')
var indexRoutes=require('./Routes/index')
var conversationRoutes=require('./Routes/Conversations/index')
app.set('view engine', 'ejs')
app.use(express.static('public'))
app.use(bodyParser.urlencoded({extended: true}))
mongoose.connect('mongodb+srv://MichaelPatriot21:Werewolf18@cluster0-9umcn.gcp.mongodb.net/Ambassador?retryWrites=true&w=majority', {useNewUrlParser: true, useUnifiedTopology: true})
app.use(indexRoutes)
app.use(conversationRoutes)
app.listen(3000, function(){
console.log('Server listening at PORT: 3000...')
})
下面是我的index.js,它的路径有问题:
var express = require('express'),
router = express(),
Player = require('../../models/player')
router.get('/player', function(req,res){
Player.find({}, function(err, players){
if(err) {
console.log(err)
} else {
res.render('playerlist', {
pageTitle: 'Characters',
player: players
})
}
})
})
router.get('/player/:id/intro', function (req, res) {
Player.findById(req.params.id, function (err, player) {
if (err) {
console.log(err)
} else {
res.render('conversations/introduction', {
pageTitle: 'Intro',
player: player
})
console.log(player)
}
})
})
module.exports = router
我的文件结构是:v3/
models/player.js
节点_模块/
public/choices-intro.css
public/choices-intro.js
路由/对话/index.js
Routes/index.js
视图/对话/简介.ejs
视图/索引/home.ejs
视图/部分/footer.ejs
视图/部分/header.ejs
视图/playerlist.ejs
app.js
package-lock.json
package.json
这是您尝试使用多个路径段的唯一uri吗?您是否将您的资产引用为简单的
choices intro.js
?href是相对于页面的uri的,并且应该以斜杠作为前缀(例如,/choices intro.js
)才能从您域中的任何uri工作。我不敢相信它这么简单,谢谢。这是您尝试使用多路径段的唯一uri吗?您是否将您的资产引用为简单的choices intro.js
?href是相对于页面的uri的,应该以斜杠作为前缀(例如,/choices intro.js
)才能从您域中的任何uri工作。我不敢相信它会这么简单,谢谢。