繁体   English   中英

Node.js浏览器错误无法获取/

[英]Node.js browser error Cannot GET/

我是Node的新手,我一直在遵循一个教程来构建一个简单的服务器,该服务器通过一些基本路由为动态pag提供服务,但始终出现Error: Cannot GET/在运行node server.js并在本地调用localhost:3300后Error: Cannot GET/浏览器。 我的路由是在外部定义的,并使用routes.initialise()初始化,如下所示:

//routes.js
var home = require('../controllers/home'),
image = require('../controllers/image'),
express = require('express');

module.exports.initialize = function(app, router) {
//var router = express.Router();

router.get('/', home.index);
router.get('/images/:image_id', image.index);
router.post('/images', image.create);
router.post('/images/:image_id/like', image.like);
router.post('/images/:image_id/comment', image.comment);

app.use('/', router);
};

我已经搜索了很多,但没有解决方案。 我真的很沮丧,需要在这里提供一些帮助。

我有一个创建服务器的server.js:

//server.js
var express = require('express'), 
config = require('./server/configure'),    
app = express(); 

app.set('port', process.env.PORT || 3300); 
app.set('views', __dirname + '/views');
app = config(app);


var server = app.listen(app.get('port'), function() {    
console.log('Server up: http://localhost:' + app.get('port')); 
});

和用于配置服务器的configure.js:

//configure.js
var path = require('path'),
routes = require('./routes'),
exphbs = require('express3-handlebars'),
express = require('express'),
bodyParser = require('body-parser'),
cookieParser = require('cookie-parser'),
morgan = require('morgan'),
methodOverride = require('method-override'),
errorHandler = require('errorhandler');

module.exports = function(app) {
app.engine('handlebars', exphbs.create({
    defaultLayout: 'main',
    layoutsDir: app.get('views') + '/layouts',
    partialsDir: [app.get('views') + '/partials']
}).engine);

app.set('view engine', 'handlebars');
app.use(morgan('dev'));
app.use(bodyParser({
    uploadDir:path.join(__dirname, 'public/upload/temp')
}));

app.use(methodOverride());
app.use(cookieParser('some-secret-value-here'));
routes.initialize(app, new express.Router());

app.use('/public/', express.static(path.join(__dirname, '../public')));

if ('development' === app.get('env')) {
    app.use(errorHandler());
}

return app;
};

还有两个文件home.jsimage.js ,它们应该提供来自configure.js的默认路由:

//home.js
module.exports = {
index: function(req, res) {
    res.send('The home:index controller');
}
};

//image.js
module.exports = {    
index: function(req, res) {        
    res.send('The image:index controller ' + req.params.image_id);    
},

create: function(req, res) {        
    res.send('The image:create POST controller');    
},    

like: function(req, res) {        
    res.send('The image:like POST controller');    
},    

comment: function(req, res) {        
    res.send('The image:comment POST controller');    
} 
};

每当我尝试在浏览器上获取任何链接时,它都会返回“无法获取/错误”。 任何帮助将不胜感激。

非常感谢 :)

实际上,我确实复制了您的确切代码,并且按您的预期工作,尽管坦率地说,它具有大量的间接调用和至少一个弃用的模块。 也许您设置了PORT环境变量,因此该应用程序实际上未在3300上运行?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM