javascript - Warum gibt res.sendFile von express und get HTML-Klartext zurück?
PHP中文网
PHP中文网 2017-05-17 09:56:57
0
2
927
let express = require('express');
let db = require('./db/db');
let app = express();

app.all('*', function (req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With");
  res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
  res.header("X-Powered-By", ' 3.2.1')
  res.header("Content-Type", "application/json;charset=utf-8");
  next();
});

app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
});

let apiRoutes = express.Router();

apiRoutes.get('/seller', function (req, res) {
  db.find(req.query.id, function (err, result) {
    if (err) {
      console.log('Error:' + err);
      return;
    } else {
      let seller = result[0].toObject();
      delete seller.goods;
      delete seller.ratings;

      res.json({
        errno: 0,
        data: seller
      });
    }
  });
});

apiRoutes.get('/goods', function (req, res) {
  db.find(req.query.id, function (err, result) {
    if (err) {
      console.log('Error:' + err);
      return;
    } else {
      res.json({
        errno: 0,
        data: result[0].toObject().goods
      });
    }
  });
});

apiRoutes.get('/ratings', function (req, res) {
  db.find(req.query.id, function (err, result) {
    if (err) {
      console.log('Error:' + err);
      return;
    } else {
      res.json({
        errno: 0,
        data: result[0].toObject().ratings
      });
    }
  });
});

app.use('/api', apiRoutes);

app.listen(3000);
console.log('Listening on port 3000...');

Warum


app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
});

Was zurückgegeben wird, ist HTML-Klartext anstelle einer Datei?

Aber

var express = require('express');
var bodyParser = require('body-parser');
var db = require('./validate');

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

// respond with "hello world" when a GET request is made to the homepage
app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
});

app.post('/dosomething', (req, res) => {
    var message = req.body;
    db.create(message.name, message.age, message.city, function (err, mes) {
        if (err) {
            throw err;
        } else {
            console.log(mes);
        }
    });
})

app.listen(1212);
console.log('is ok ...');

Kann die Webseite normal angezeigt werden?

PHP中文网
PHP中文网

认证0级讲师

Antworte allen(2)
淡淡烟草味

第一个你设置了header
res.header("Content-Type", "application/json;charset=utf-8");
浏览器就会按照json解析

第二个,没设置,默认就是
Content-Type:text/html; charset=utf-8
自然就按照 html解析

PHPzhong

对头,设置Content-Type,你用Chrome浏览器看看http响应的header对不对。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage