[英]How to save facebook image into my web server folder using node.js and express
[英]My node.js simple web server doesn't access parent folder
昨天我在Node.js上做了一些嘗試,我的第一個想法是制作一個簡單的Web服務器,該服務器以這種方式加載帶有一些js文件的html頁面:
var http = require('http'),
fs = require('fs'),
path = require('path');
http.createServer(function(request, response) {
console.log('request starting for: ' + request.url);
var filePath = path.join('.', request.url);
if (filePath === './') {
filePath = './aPage.html';
}
path.exists(filePath, function(exists) {
if (exists) {
var extname = path.extname(filePath);
var contentType = 'text/html';
switch (extname) {
case '.js':
contentType = 'text/javascript';
break;
case '.css':
contentType = 'text/css';
break;
}
fs.readFile(filePath, function(error, content) {
if (error) {
response.writeHead(500);
response.end();
}
else {
response.writeHead(200, {
'Content-Type': contentType
});
response.end(content, 'utf-8');
}
});
}
else {
console.log('Something goes wrong ;(');
response.writeHead(404);
response.end();
}
});
console.log('Server running!');
}).listen('8080', '0.0.0.0');
一切正常。
我決定將此js腳本放在一個子目錄中,修改以下行:
...
var filePath = path.join('..', request.url);
if (filePath === '../') {
filePath = '../aPage.html';
}
...
但是path.exists()無法檢查html頁面和其他文件的存在。
你能告訴我我的錯嗎(我以為那只是微不足道的改變)?
謝謝。
我的猜測是您正在嘗試直接從父文件夾而不是子目錄運行js
腳本。
例如:如果您位於foo
目錄中,而server.js
位於subdir bar
,
然后,如果您運行node bar/server.js
,則..
將指向foo的父級,而不是bar的父級,這就是為什么找不到該文件的原因。
foo
+---bar
| +----- server.js
+---- aPage.html
您可以嘗試cd
到bar
和運行node server.js
。
或將腳本中的../aPage.html
更改為__dirname/../aPage.html
。
PS:您可以使用path.resolve
獲取絕對路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.