我在使用Express時遇到了新手問題。我使用的是Ubuntu 14.04,並創建了一個新的目錄,並在終端中運行「express」,並設置了一個項目模板。然後運行「npm install」安裝依賴關係。然後編輯'views/layout.jade'來改變「!!!」以「doctype html」作爲節點錯誤建議嘗試運行服務器時不作更改。只能從機器運行服務器訪問Express Node.js服務器
然後,我通過在終端上輸入「node app.js」啓動服務器,然後可以使用「localhost:3000」或「192.168.1.13:3000」在瀏覽器中查看默認頁面。
我的理解是我應該可以使用本地網絡中另一臺計算機的「192.168.1.13:3000」。然而,當我嘗試這個時,我得到「連接到192.168.1.13 ...」大約30秒到一分鐘,然後它說:「連接超時...服務器在192.168.1.13需要太長的時間來響應。」
我試過這個從Firefox和鉻在Windows桌面和Android手機。我也試着將它設置爲80而不是3000,結果相同。我已經嘗試在app.listen中的端口之後添加「'0.0.0.0'」,但這也具有相同的結果。
我從來沒有在這個Ubuntu安裝中設置防火牆或端口轉發,所以我相信這些不應該成爲問題? (是我的路由器的問題?)也許我錯了。
這裏的相關文件 -
app.js:
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes');
var app = module.exports = express.createServer();
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
// Routes
app.get('/', routes.index);
app.listen(3000, function(){
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
});
路線/ index.js:
/*
* GET home page.
*/
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
的意見/ layout.jade:
doctype html
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
body!= body
views/index.jade:
h1= title
p Welcome to #{title}
讓我知道我是否遺漏了任何東西。乾杯。
您可以訪問其他的人(你用它來測試)電腦??? – 2015-04-03 04:52:47
您的ubuntu安裝在虛擬機中嗎? – makenova 2015-04-03 05:04:07
@林琳昂 - 似乎沒有,在windows網絡瀏覽器中看不到它。另外在Windows上運行python -m SimpleHTTPServer似乎無法從Windows計算機訪問。這是你的意思嗎? – qk4 2015-04-03 05:07:21