Это мой код из моего index.js файла (с помощью экспресс-маршрутизации)Как передать источник изображения в нефрите из переменных в node.js
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res){
var db = req.db;
var collection = db.get('usercollection');
var source = req.app.get('imgSource');
console.log("IMG SOURCE: " + source);
collection.find({},{},function(e,docs,source){
res.render('index',{
"userlist" : docs,
"imgURL" : source,
"title": "Insta-Famous"
});
});
});
module.exports = router;
И это мой код из моего индекса. jade
extends layout
block content
h1= title
p Welcome to #{title}
ul
each user, i in userlist
li
p #{user.instaid}
p #{user.price}
li
img(src = "#{imgURL}")
источник - это переменная, определенная в app.js, а затем используемая в моем файле index.js. Я знаю, что эта переменная имеет значение, потому что она печатает на console.log при запуске приложения. Однако изображение не загружается и вместо этого отображает вопросительный знак 404.
Если я копирую и вставляю источник изображения (то есть: http://naccrra.org/sites/default/files/default_site_pages/2013/instagram-icon.png), тогда изображение загружается отлично.
Что я здесь делаю неправильно?
Заранее благодарю вас за помощь.
Когда вы просматриваете вкладку своей сети в своем браузере, выполняется ли запрос на изображение, как ожидается? И адрес правильный? – Brennan
Почему вы передаете функцию 'source' в функцию обратного вызова' collection.find'? Я не думаю, что ты должен. Он все равно будет доступен для 'res.render', если вы этого не сделали. На самом деле я думаю, что он настроен на 'undefined' таким образом, что, скорее всего, ваша проблема. – laggingreflex
Спасибо, laggingreflex, это была именно проблема. Я новичок в javascript, поэтому я не знал об этом, но это на 100% имеет смысл. Вы должны сделать свой комментарий ответом, чтобы я мог отметить его как ответ. – prcbass