javascript - 為什麼express,get的res.sendFile回傳的是html純文字?
PHP中文网
PHP中文网 2017-05-17 09:56:57
0
2
925
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...');

為什麼


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

回傳的是html純文字而不是檔案?

#但是

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 ...');

就能正常顯示網頁?

PHP中文网
PHP中文网

认证0级讲师

全部回覆(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對不對。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板