LoginSignup
5
4

More than 5 years have passed since last update.

Node.js express4 res.send()で数値型指定すると、ステータスコードになってしまう

Posted at

はまったのでメモしておく

$.ajax({
   url:hoge,
   method:post,
   data:{table:'hoge',param:JSON.stringify({title:'foo',content:'bar'})}
).then(function(result){
   console.log(result);
});

として、サーバー側
DBにデータをinsertし、insertしたIDを取得するもの

routes/hoge.js

var express=require("express");
var router=express.Router();
var sql = require("sql");
router.post('/',function(req, res, next) {
     sql.insert(req.body.table,req.body.param,function(result){
            res.send(result);
    }
});

これで結果が返ると思ったら帰らない。
なぜかHTTP ステータスコードに、インサートしたIDが入っている。
どうやら数値型をsendするとこうなるらしい。

こうやったらちゃんとresponse bodyに結果が返ってきた

routes/hoge.js

var express=require("express");
var router=express.Router();
var sql = require("sql");
router.post('/',function(req, res, next) {
     sql.insert(req.body.table,req.body.param,function(result){
            res.send(String(result));
    }
});

res.send(String(result));

これだけで30分も損した。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4