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 명령 작동합니까? 서버를 탐색 할 때 '정의되지 않음'입니다. 라우터에서 실제 json을 얻으려면 어떻게해야합니까?
시도 : var result = route (filename); 그러나 그것은 나쁘게 실패했다.
본질적으로 라우터에서 데이터를 가져 와서 응답에 쓰는 방법. 짐작하지 못했다면, javascript와 NodeJS는 나에게 새로운 것이다.
모든 포인터가 크게 감사하겠습니다.
감사합니다.
고마워요! 그것은 엄청난 개선입니다. 별로 문제가되지 않지만 유일한 것은 실제 정보 대신 실제 데이터 유형 [object Object]에 대한 응답을 얻는 것입니다. 어떻게 해결할 수 있을까요? – sum1nil
@ sum1nil이라면'JSON.stringify' 만 호출하면됩니다. 그렇지 않으면 데이터에 포함될 속성 (예 :'data.ID')을 호출 할 수 있습니다. server.js 부분을 업데이트했습니다. – matth