Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Express 执行res.send()时如何设置内容类型?_Express - Fatal编程技术网

Express 执行res.send()时如何设置内容类型?

Express 执行res.send()时如何设置内容类型?,express,Express,在路由函数的末尾,当我这样做时 res.send(JSON.stringify({...})); 我希望响应的内容类型设置为“text/plain”,但它是“text/html”。有没有办法明确地设置它?我搜索了文档,但没有任何线索。发送前设置标题: 您可以尝试设置内容类型标题,如下所示: res.set('content-type', 'text/plain'); res.send(JSON.stringify({...})); 有几种方法可以实现这一点,其中最干净/最简单的可能是(假设使

在路由函数的末尾,当我这样做时

res.send(JSON.stringify({...}));

我希望响应的内容类型设置为“text/plain”,但它是“text/html”。有没有办法明确地设置它?我搜索了文档,但没有任何线索。

发送前设置标题:

您可以尝试设置
内容类型
标题,如下所示:

res.set('content-type', 'text/plain');
res.send(JSON.stringify({...}));

有几种方法可以实现这一点,其中最干净/最简单的可能是(假设使用,基于标记;如果不使用expressjs,请参阅最终答案选项):

这就是使用,它提供了许多速记,并且能够设置显式mime类型,例如(在许多其他类型中):

在撰写本文时,这是指,也可以直接称为:

res.set('content-type', 'text/plain');
res.send(JSON.stringify({...}));
这些是官方记录的执行此功能的方法(除了
res.header
res.set
的别名)。然而,响应对象似乎是从中派生出来的,因此也有(以及在实现中)来自该对象的方法,该方法与
res.set
具有相同的用法,没有与
res.set
完全相同的功能(一些检查没有完成,等等)。。。但是它确实完成了基本的工作,因此完全有可能在野外找到可以解决您这个问题的代码(特别是如果它不是一个express应用程序,而是使用包):


(作为旁注:per(以前在中),标题名称不区分大小写。这就是说,
Content-Type
大写是在中使用的,它定义了它的含义和用法,并且是
res.Type
将要使用的。也就是说,我至少看到了一些
res.set
与所有小写标题名称一起使用的示例,所以我想我应该说明这两个都是正确的可能。)

注意:我不确定收到了什么
Exotel get请求。Exotel auto call test
是,但我去掉了它,用问题的内容替换了它,因为res.set是重要的一部分。考虑到这个问题用
express
标记,可能最好使用
res.type('txt')
,或者
res.set('content-type','text/plain'))
而不是
res.setHeader
,因为后者在技术上来自不同的API(尽管express在内部使用它,因此它仍然可以工作)。这并没有让我觉得有足够的问题来进行否决投票,但我建议大家参考一个[我刚才写的是为了更彻底(和面向express的)处理方法。这个解决方案似乎已经过时。没有setHeader。只有“set”:@AndroidDev正如前面的评论所指出的,setHeader在节点api上。
res.type('txt');
res.send(JSON.stringify({...}));
res.type('.html')            // => 'text/html'
res.type('html')             // => 'text/html'
res.type('json')             // => 'application/json'
res.type('application/json') // => 'application/json'
res.type('png')              // => 'image/png'
res.type('mp3')              // => 'audio/mp3'
res.set('content-type', 'text/plain');
res.send(JSON.stringify({...}));
res.setHeader('Content-Type', 'text/plain');
res.send(JSON.stringify({...}));