【问题标题】:Sapper Svelte Blog get Data from ServerSapper Svelte 博客从服务器获取数据
【发布时间】:2020-10-01 20:00:47
【问题描述】:

我在让 Sapper 示例博客从数据库中获取真实数据时遇到问题。在示例中,数据来自 js 文件。 我试图用我自己的数据替换数据,就像在_post.js中那样从服务器获取数据

import fetch from "node-fetch";

export default (async () => {
    const response = await fetch('https://www.exampleserver.de/posts?id=1309');
    let json = await response.text();
    //json = JSON.parse(json);
    posts = json;
    return posts;


})()

但它给了我这个错误

TypeError: posts$1.map is not a function
    at Object.<anonymous> (/Users/mark/01_m_code/01 SVELTE SAPPER/04 blog/__sapper__/dev/server/server.js:43:41)

我不得不承认我对 sapper 和 svelte 还很陌生,也许我对 slug 的工作原理没有正确的理解。任何帮助表示赞赏

【问题讨论】:

    标签: svelte slug sapper


    【解决方案1】:

    async 函数总是返回一个 Promise —— 当您看到 posts$1.map is not a function 时,那是因为该 Promise 没有 map 方法(如果有,它就不是你想要的)。

    基本上,您需要在需要该数据的路由处理程序中 await 承诺:

    import posts_promise from './_posts.js';
    
    export async function get(req, res) {
      const posts = await posts_promise;
      res.writeHead(200, { 'Content-Type': 'application/json' });
      res.end(JSON.stringify(posts));
    }
    

    【讨论】:

    • 很好的解释。我现在开始工作了。太感谢了。继续努力。
    猜你喜欢
    • 2020-06-06
    • 2020-09-04
    • 2019-11-24
    • 2021-05-21
    • 2015-09-30
    • 2023-03-03
    • 2020-09-03
    • 2020-08-16
    • 2021-05-18
    相关资源
    最近更新 更多