【发布时间】:2018-10-09 12:23:32
【问题描述】:
我正在尝试将一个数组从 react using axios 发送到我的 Node.js 文件,但是我得到了一个状态 404 error。
我的profileSchema如下:
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
// Create Schema
const ProfileSchema = new Schema({
user: {
type: Schema.Types.ObjectId,
ref: "users"
},
preference: [
{
type: String
}
],
date: {
type: Date,
default: Date.now
}
});
module.exports = Profile = mongoose.model("profile", ProfileSchema);
我想用axios request 向后端发送一个数组。
例如
tempArray=["Chocoloate","Vanilla","Strawberry"]
我提出的 axios 请求是
axios
.post('/api/profile/register', tempArray)
.then(res => console.log(res.data))
.catch(err => console.log(err));
我的profile.js 看这个。我也有 body-parse 和所有安装。
const express = require("express");
const router = express.Router();
const mongoose = require("mongoose");
const passport = require("passport");
const Profile = require("../../models/Profile");
// Load User Model
const User = require("../../models/User");
router.get("/test", (req, res) => res.json({ msg: "Profile Works" }));
// @route POST api/profile
// @desc Create or edit user profile
// @access Private
router.post(
"/register",
(req, res) => {
console.log(req);
var list = req.body;
console.log(list);
}
);
但是,我仍然遇到 404 错误,无法将数组保存到后端
index.js 文件
const express = require("express");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const passport = require("passport");
const users = require("./routes/api/users");
const profile = require("./routes/api/profile");
const posts = require("./routes/api/posts");
const issues = require("./routes/api/issues");
const mp = require("./routes/api/mp");
const app = express();
// Body parser middleware
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// DB Config
const db = require("./config/keys").mongoURI;
// Connect to MongoDB
mongoose
.connect(db)
.then(() => console.log("MongoDB Connected"))
.catch(err => console.log(err));
// Passport middleware
app.use(passport.initialize());
// Passport Config
require("./config/passport")(passport);
// Use Routes
app.use("/api/users", users);
app.use('/api/profile', profile);
app.use("/api/posts", posts);
app.use("/api/issues", issues);
app.use("/api/mp", mp);
const port = process.env.PORT || 5000;
app.listen(port, () => console.log(`Server running on port ${port}`));
【问题讨论】:
-
请提供您的
index.js后端文件,我的意思是,您设置整个 API 的位置 -
@NguyễnThanhTú 添加了它。
-
请同时提供您对 api/profile/register 路由的完整实现
-
@NguyễnThanhTú 它在 profile.js 部分中
-
你用 axios 打对了端口吗?
标签: javascript node.js mongodb reactjs