Javascript 无法在node.js上使用express发布

Javascript 无法在node.js上使用express发布,javascript,node.js,express,post,Javascript,Node.js,Express,Post,我正在尝试创建一个添加文件名的发布路线,但我一直得到: 无法获取/api/data?file=example.fasta 尝试测试路由时出错。请你帮我解决这个问题 以下是my router.js的代码: const fs = require('fs'); const express = require('express'); const bodyParser = require('body-parser'); const parser = require('parser'); const ro

我正在尝试创建一个添加文件名的发布路线,但我一直得到:

无法获取/api/data?file=example.fasta

尝试测试路由时出错。请你帮我解决这个问题

以下是my router.js的代码:

const fs = require('fs');
const express = require('express');
const bodyParser = require('body-parser');
const parser = require('parser');

const router = express.Router();
router.use(bodyParser.json());
router.use(bodyParser.urlencoded({ extended: false }));

// middleware 
router.use(function (req, res, next) {
    console.log('Received request');
    // hand over route to specific route handler
    next();
});

router.post('/data', function (req, res) {
    if (!req.body.file.toString().endsWith('.fasta')) {
        res.status(400).json({ message: "Bad Request" });
    } else {
        parser.parseFile(req.body.filename)
        res.json({ message: "File parsed and data entered.", location: "/data/" });
        
    }
    
});
server.js

const express = require('express');

// server
const app = express();
const port = 3000;
app.listen(port, function () {
    console.log(`Server running on port ${port}`)
});

// import router
const router = require('./router');
app.use('/api', router)

尝试使用
/api/data?file=example.fasta
而不是
/api/data/file=example.fasta

另一方面,由于“?”代表url查询,/正在路由到其他地方,例如另一个页面。使用/you会转到一个名为“file=example.fasta”的页面,但是使用?,您告诉代码您想要一个文件名example.fasta。

是否应该是
/api/data?file=example.fasta
?提示是错误
无法获取…
-您显然没有发布到服务器。此外,您的文件名在URL中(尽管不正确),但在服务器中,您试图从正文中读取它-是哪一个?感谢您的回复。抱歉,我是API开发新手,所以我还在学习。我正试图从一个文件中提取数据并存储在另一个文件中,但仍然收到相同的错误消息。@Anatoly我在修复类型后可以得到它,但它只在终端
curl-X POST--data
中起作用,但在浏览器中不起作用,为什么它在终端中起作用而在浏览器中不起作用?