发送json数据响应

时间:2017-09-20 14:59:43

标签: json node.js express

我正在尝试通过HTTP发送JSON响应但不幸的是,我没有看到任何响应,我无法理解为什么。 看起来响应变量没有被发送。我不确定问题是它是JSON对象还是我发送它的方式。我是Web开发的新手。 要求是帮助用户查看已成功发送的文件的时间和名称。

var express = require('express');
var fs = require('fs');
var cors  = require('cors');
var bodyParser = require('body-parser');
var multer = require('multer');
var app = express();
var upload = multer({ dest: 'uploads/' });
var Client = require('ssh2').Client;
const request = require('request');


app.use(bodyParser.urlencoded({
    extended: true
}));

app.use(cors());

app.get('/', function(req, res){
    console.log('GET /');
    //var html = '<html><body><form method="post" action="http://localhost:3000">Name: <input type="text" name="name" /><input type="submit" value="Submit" /></form></body>';
    var html = fs.readFileSync('index.html');
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end(html);
});

app.post('/', upload.single('file'), function(req, res){
    var response;
    var time;
    console.log('POST /');
    console.dir(req.body);
    // console.log(req.body.filename);
    fs.writeFile('./uploads/' + req.body.filename, req.body.file, 
   function(err) { console.log(err)});

    var conn = new Client();
    conn.on('ready', function() {
        console.log('Client :: ready');
        conn.sftp(function(err, sftp) {
            if (err) throw err;
            // sftp.fastPut('./uploads/' + req.body.filename, '/data/' + 
            req.body.filename, function (err) {
            //    if (err) {
            //        console.log(err);
            //        throw err;
            //    }
            // });
            sftp.readdir('data', function(err, name) {
                if (err) throw err;
                console.dir(name);
                var infoList = JSON.parse(JSON.stringify(name));
                for(var index in infoList) {
                    var value = infoList[index];
                    time = value.attrs.mtime;
                    console.log(value.filename);
                    console.log(time);
                    response = JSON.stringify(value.filename);
                }

                conn.end();
            });
        });
    }).connect({
        host: 'ftp.amadeus.net',
        port: 15022,
        username: 'wtl001',
        password: 'Wyamp309$'
    });

    res.writeHead(200, {'Content-Type': 'application/json', "Access-Control-
    Allow-Origin": "*"});
    res.json(response);
    res.end("EOF");
});

port = 12811;
app.listen(port);
console.log('Listening at http://localhost:' + port);

0 个答案:

没有答案