Javascript 无法在node.js上使用express发布
我正在尝试创建一个添加文件名的发布路线,但我一直得到: 无法获取/api/data?file=example.fasta 尝试测试路由时出错。请你帮我解决这个问题 以下是my router.js的代码: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
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
中起作用,但在浏览器中不起作用,为什么它在终端中起作用而在浏览器中不起作用?