【问题标题】:Vue equivalent to express [GET, POST]Vue相当于表达[GET, POST]
【发布时间】:2019-07-28 08:35:19
【问题描述】:

这是我写的一段代码

export let postChapter = (req: Request, res: Response) => {
    var chapterInfoModel = mongoose.model(`${req.params.novelId}`, RiChapterScheme);

    var array = {
        title: req.body.chapterTitle,
        content: req.body.chapterContent
    };

    let newChapterInfo = new chapterInfoModel(array);

    newChapterInfo.save((err, book) => {
        if (err) {
            res.send({ error: err, affected: book });
        } else if (!err) {
            res.redirect('/novels/' + req.params.novelId);
        }
    });
};

上面的代码是我的控制器。这是我不知道如何转换为我的 vue 设置的部分

因为我的快速路由器是这样设置的

this.router.post('/novels/:novelId', novelController.postNovel);

这是我的 vue 路由器

router.ts

export default new Router({
  mode: 'history',
  base: process.env.BASE_URL,
  routes: [
    {
      path: '/',
      name: 'Home',
      component: Home
    }
  ]
})

我的vue-cli插件如下

  • vue-路由器
  • vuex

Home.Vue

<template>
    <div>
        <img id='mainLogo' src='@/assets/logo.jpg'>
        <form method="POST"></form>
            <button type="submit"></button>
    </div>
</template>

我将如何实现这个?

var chapterInfoModel = mongoose.model(`${req.params.novelId}`, RiChapterScheme);
let newChapterInfo = new chapterInfoModel(array);

newChapterInfo.save((err, book) => {
    if (err) {
        res.send({ error: err, affected: book });
    } else if (!err) {
        res.redirect('/novels/' + req.params.novelId);
    }
});

进入我的 vue 路由器还是进入我的 Home.vue?

谢谢!

【问题讨论】:

  • 不确定您要达到的目标。您想将图书对象发布到您的 express 服务器并将其保存在 mongoose 数据库中吗?
  • 啊,不,我想从我的 cue 服务器发布到我的 mongodb :/ 因为它在 express 中的工作方式不同,因为我可以将 .post 发送到路由器,但因为我'当我按下按钮提交时,我对如何从 vue 内部发布感到困惑
  • 嗯,好的。不可能直接这样做,因为 Vue 是一个客户端框架,所以它不能直接与数据库通信。 Vue 只能通过 HTTP 进行通信,因此您需要向您的 express 服务器发送一个 Post HTTP 请求。然后,您的 express 服务器可以直接向您的 mongoDB 发送命令并将数据保存到其中,有意义吗?
  • @MJ_Wales ahhh 感谢您消除我对 vue 的误解
  • 谢谢!快乐编码:)

标签: typescript vue.js


【解决方案1】:

对于未来的读者:使用 Vue 直接访问数据库是不可能的,因为它是一个客户端框架。 Vue 只能通过 HTTP 进行通信,因此您需要向后端服务器发送一个 Post HTTP 请求(在这种情况下是快递)。后端服务器将处理请求,然后将数据保存到您的数据库中。

Axios 是一个非常有用的包,用于轻松编写 HTTP 请求。另请参阅此question 可能会有所帮助,因为它描述了您需要执行的所有步骤。

【讨论】:

    猜你喜欢
    • 2016-11-18
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 2017-02-25
    • 2012-06-24
    相关资源
    最近更新 更多