我正在向服务器发送文件名并试图获得某种响应,以确保api调用正在工作,但即使路径正确,它也总是在退回404,我不知道我在哪里犯错,不知道吗?
angularjsFactory.js
getFile:function(file_name){
return $http.get("/file?file_name="+file_name);
}
server.js
var express = require('express');
var app = express();
var fs = require('fs');
app.use(express.static(__dirname + "/public"));
var readDirectory = require('./readDirectory');
app.get('/file', function(req, res) {
var path = './ditLogs';
var fileParam = req.query.file_name;
console.log(fileParam);
fs.readdir(path, function(err, items) {
items.forEach(function(items) {
if (fileParam === items) {
res.sendFile(items);
console.log(items);
}
});
});
});
app.listen(3000, function() {
console.log('Example app listening on port 3000!');
//console.log('app is printing data',obj);
//ditProducer.startProducer();
setTimeout(function() {
ditconsumer.start();
}, 2000);
});
答案 0 :(得分:1)
与来自角度方的呼叫相比,您在服务器上的路线不正确。您没有使用路由参数,而是使用查询字符串。
试试这个:
app.get('/file', function (req, res) {
// get filename using: req.query.file_name
res.send('FIle data');
});
或者您可以在角度上尝试此操作并保留服务器代码:
$http.get("/file/"+ encodeURI(file_name));
答案 1 :(得分:0)
服务器端代码看起来不正确。
app.get('/file', function (req, res) {
console.log(req.query.file_name);//This will give you filename passed as url param
res.send('FIle data');
});