小编dro*_*ers的帖子

node.js & express: req.body 未定义

我目前正在使用 express 设计一个简单的浏览器应用程序。我正在尝试提取用户在下拉菜单中选择的值。我也给每个选项一个单独的值,并将表单的方法声明为 /post。但是当我通过进入 尝试他们选择req.body的值时,该值未定义。

我认识到问题可能在于身体解析器浏览类似问题(ExampleExample1),但这些问题的解决方案并不能req.body避免未定义。

这是我的应用程序构建代码

const app = express()
app.use(express.static(__dirname, ''));
app.engine('html', require('ejs').renderFile);
app.set('views', __dirname + '/public/views');
app.use(express.urlencoded());
app.set('view engine', 'html');
const server = http.createServer(app);
Run Code Online (Sandbox Code Playgroud)

这是后处理的代码

app.get('/detailed', function(req,res){
    res.send(displayDetailed(results, req));
});
app.post('/detailed', function(req,res){
    res.send('Hello world');
    console.log(req.body);

});
Run Code Online (Sandbox Code Playgroud)

当我在 localhost:8080/detailed 中发布内容时,hello world 返回得很好,但 req.body 为空(返回为 {})。displayDetailed 函数是一个自定义函数,它返回一个 html 字符串,其中包含从来自 google sheet API 的 get 请求中提取的值。由于我没有使用保存的 html 文档,这会影响流程吗?

javascript node.js express

3
推荐指数
1
解决办法
8784
查看次数

node.js Google Sheets API 不允许发布新值

我一直在研究一个 node.js 项目,该项目根据人名和日期提取单元格的位置。我可以很容易地弄清楚这一点,但是当需要发布到单元格时,.update 函数只返回 400 响应,表示请求格式错误。我一直在搜索所需表单的文档,并尝试在他们的网站上使用 API 控制台,但无济于事。这是我的代码示例

active = [<name>, <value>, <comment>, <var>, <column>, <row>];
var request1 = {
        spreadsheetId: <id> ,
        range: active[5] + active[4],
        auth: auth,
        valueInputOption: "RAW",
        resource: {
            "range": active[5] + active[4],
            "values": [active[1]]
        }
    }
sheets.spreadsheets.values.update(request1, function(err, response){
    if (err) console.log(err);
    else return;
Run Code Online (Sandbox Code Playgroud)

但是,这将返回以下响应,

{ message: 'Invalid value at \'data.values[0]\' (type.googleapis.com/google.protobuf.ListValue), " "',
   domain: 'global',
   reason: 'badRequest' }
Run Code Online (Sandbox Code Playgroud)

我没能弄清楚这个请求的哪一部分使它变得“糟糕”。API 没有提供任何关于它为什么不接受我的请求的线索。我有适当的范围和身份验证,我的 get 请求工作得很好。消息中的 URL 链接到 404 页面。

任何帮助,将不胜感激。提前致谢。

javascript node.js google-sheets-api

2
推荐指数
1
解决办法
732
查看次数

部署应用程序时找不到模块“google-cloud/pubsub”

我目前正在从事一个涉及将数据从 PubSub 移动到 Datastore 的谷歌云项目。这是在作为常驻应用程序运行的谷歌云应用引擎实例上运行的。我首先开始研究数据存储部分,没有遇到任何问题,但是当我尝试包含它时,应用程序在支持 pubsub 时崩溃了。

//including datastore
const Datastore = require('@google-cloud/datastore');
const datastore = Datastore();
//including pubsub
const PubSub = require('@google-cloud/pubsub');
const pubsub = new PubSub();
Run Code Online (Sandbox Code Playgroud)

我不明白的是这两个命令实际上是如何相同的,只有 pubsub 部分崩溃了。google-cloud 文档将此列为将 pubsub 包含到项目中的方法。我也尝试通过 npm 在本地加载包,但没有成功。

可以做些什么来缓解这个问题?提前致谢。

node.js google-cloud-datastore google-cloud-platform google-cloud-pubsub

2
推荐指数
1
解决办法
2302
查看次数