【发布时间】:2016-11-22 13:17:29
【问题描述】:
我正在尝试将节点后端与我的 Angular 脚本一起使用,并使用 Q 来 promise-fy 一个 fs 方法。使用正常的回调方法是可行的,但是在这里,没有任何东西返回给 Angular。控制台中不打印任何内容,并且在控制台或运行节点的终端中没有返回错误。我错过了什么?
var express = require('express');
var app = express();
var router = express.Router();
var FS = require('fs');
var Q = require('q');
app.use('/bower_components', express.static(__dirname + '/bower_components'));
app.use('/dist', express.static(__dirname + '/dist'));
app.get('/', function(req, res) {
res.sendfile('./index.html');
});
app.get('/test', function(req, res){
// res.send('asdf')
var deferred = Q.defer();
FS.readFile("gulpfile.js", "utf-8", function (error, text) {
console.log('error', error);
console.log('in read file')
if (error) {
deferred.reject(new Error(error));
} else {
res.send(text);
deferred.resolve(text);
}
});
return deferred.promise;
});
app.listen(5000);
【问题讨论】:
-
deferred.resolve(text)在您的节点文件中?!然后return deferred.promise;! -
@IsmailRBOUH 我的错误,这是一个糟糕的复制粘贴。这就是目前所拥有的。
-
但是你还需要解决你的延期
deferred.resolve(text)! -
网络检查器显示什么?我敢打赌这是服务器端的问题,与角度无关。
-
@Bergi 终端或控制台中没有错误错误。文件的内容是在终端打印的,所以我认为服务器端没有任何错误。
标签: javascript node.js express promise q