如何使用angularjs从服务器检索响应?
我发送文件名到服务器,并试图得到某种形式的响应,以确保API调用正在工作,但其始终回响404即使路径是正确的,我不知道我在哪里犯错,任何想法?如何使用angularjs从服务器检索响应?
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);
});
你的服务器上的路线是不正确的比较,从角的边通话。您没有使用路由参数,而是查询字符串。
试试这个:
app.get('/file', function (req, res) {
// get filename using: req.query.file_name
res.send('FIle data');
});
或者你可以试试这个角度上,并保持服务器代码:
$http.get("/file/"+ encodeURI(file_name));
服务器端代码看起来不正确。
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');
});
我更新了我的服务器代码,以便您更好地理解我正在尝试执行的操作。 – hussain
您可以确认您没有添加此中间件app.get('/ file',function(req,res){get filename使用:req.query.file_name res.send('FIle data'); });最后在app.js –
它应该在上面://捕获404并转发到错误处理程序 app.use(函数(req,res,next){var_error = new Error('Not Found'); err.status = 404; next(err); }); '需要检查你的app.js –
您是否尝试在网址末尾添加正斜杠'/' – bhzag