javascript - Firebase 函数:TypeError:无法读取未定义的属性“替换”
问题描述
我正在尝试按照 Aaron Klasner 在 Hackernoon 上的教程来创建一个 Medium 提要以做出反应。
为了在本地进行测试,我需要绕过 Medium 用来阻止本地请求的 CORB。
我构建了一个 firebase 函数,但出现以下错误:
TypeError: Cannot read property 'replace' of undefined
at strip (/user_code/index.js:18:37)
at Request.request [as _callback] (/user_code/index.js:19:25)
at self.callback (/user_code/node_modules/request/request.js:185:22)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at Request.onRequestError (/user_code/node_modules/request/request.js:881:8)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:188:7)
at TLSSocket.socketErrorListener (_http_client.js:324:9)
at emitOne (events.js:96:13)
这是我从教程中获得的 firebase 函数:
const functions = require('firebase-functions');
var request = require('request');
exports.medium = functions.https.onRequest((req, res) => {
if(!req.query.username) {
return res.status(400).send('Error: You need to include query param ?username=@yourUsername');
}
const url = `https://medium.com/${req.query.username}/latest?format=json`;
return request(url,(error, response, body) => {
const prefix = `])}while(1);</x>`
const strip = payload => payload.replace(prefix, ``)
res.send(JSON.parse(strip(body)));
});
})
这里也是教程的链接:https ://hackernoon.com/import-your-medium-feed-into-react-ceadbaf785c7
解决方案
你得到的错误是由 body being 引起的undefined
,所以在发回响应之前尝试检查错误:
return request(url,(error, response, body) => {
if (error) {
return console.error('Failed to fetch data: ', error);
}
const prefix = '])}while(1);</x>';
const strip = (payload) => payload.replace(prefix, '');
res.send(JSON.parse(strip(body)));
});
检查请求文档
推荐阅读
- c++ - 为什么我的 switch 语句不能正常工作?
- iis - IIS 中的 ASP.Net core 2.2 部署问题
- c# - UWP 创建应用程序包在发布模式下失败
- android - 应用程序转到 splitView 时如何避免调用 onCreate()
- html - 达到最大宽度时如何在 x 轴上进行行滚动(溢出)
- c# - 类属性中的动态类型
- ios - 在 UIViewController、iOS Swift4.2、Xcode10.1 中只调用一次函数
- python - 根据命令行参数调用python函数
- php - 将 laravel 分页器类注入另一个类
- python - 自动化几个 BASH 命令