0
我試圖按照網絡上的示例創建NodeJS服務器和路由器,但遇到了問題。接下來的主要是一些其他代碼的例子。使用NodeJS的基本嘗試
Index.js
var server = require("./server");
var router = require("./router");
server.start(router.route);'
Router.js
var fs = require("fs");
function route(filename) {
fs.readFile(filename, 'utf8', function (err, data) {
if (err) {
console.log('Error: ' + err);
return;
}
console.log("About to route a request for " + filename);
data = JSON.parse(data);
})
}
exports.route = route;
Server.js
var http = require('http');
var url = require("url");
function start(route) {
function onRequest(request, response) {
var filename = request.url.substr(1);
// call for specific json file here
if (filename == "favicon.ico") {
response.writeHead(200, {'Content-Type': 'image/x-icon'});
response.end();
console.log('favicon requested');
return;
}
else {
filename += ".json";
console.log("Request for " + filename + " received.");
response.writeHead(200, { 'Content-Type': 'application/json', "Access-Control-Allow-Origin":"*" });
response.write("" + route(filename),0,4);
response.end();
}
}
http.createServer(onRequest).listen(8124);
}
exports.start = start;
console.log('Server running at http://127.0.0.1:8124/');
我的問題是,除其他外,如何做route命令工作? 當我瀏覽到服務器時得到的是'undefined'。我如何從路由器獲取實際的json?
我試過了:var result = route(filename);但是那個失敗了。
實質上,如何從路由器獲取數據並將其寫入響應。如果你還沒有猜到,javascript和NodeJS對我來說是比較新的。
任何指針將不勝感激。
謝謝。
非常感謝!這是一個巨大的進步。不要麻煩你很多,但唯一的是我得到的實際數據類型[對象對象]的響應,而不是實際的信息。我將如何解決這個問題? – sum1nil
@ sum1nil,你只需要調用'JSON.stringify',或者你可以調用數據將包含的任何屬性,比如'data.ID'。我更新了server.js部分。 – matth