enter image description here

// pages/api/blogs/[id].js


import {data} from "../../.././data.js"



export default function handler ({query: {id}},res){
    const filtered = data.filter ((blog) => blog.id === Number(id))
     
    if(filtered.length>0){
        res.status(200).json(filtered[0]);

    }else{
    res.status(404).json({message:`${id} is not found`});

    }
    
}


// pages/api/blogs/index.js

import {data} from "../../.././data.js"

export default function handler (req,res){
    res.status(200).json(data);
}

import {data} from '../../data.js'

 const Details = ({userData}) => {
    return (




        <Layout>
             <Meta 
      title={"Blog"}
      />
      <div className={Detailscss.Container}>
      <div className={Detailscss.sidebar}>
      <div className={Detailscss.sidebarItem}>
        <Image priority src="/images/avatar3.png" className={Detailscss.avatar_sidebar} alt="avatar"  width={150} height={150}   />
        <span className={Detailscss.sidebarTitle}>Hakkımda</span>
       
        <p>
          Güzel ve basit şeyler kodluyorum ve yaptığım işi seviyorum.
        </p>
      </div>
    
      <div className={Detailscss.sidebarItem}>
        <span className={Detailscss.sidebarTitle}>İletişim</span>
        <div className={Detailscss.sidebarSocial}>
        <a className='icon' href="https://www.instagram.com/emirtetiik/"><AiFillInstagram className='icon-item' /></a>
        <a className='icon' href="https://github.com/emirtetik"><AiFillGithub className='icon-item' /></a>
        <a className='icon' href="https://www.linkedin.com/in/emir-tetik"><AiFillLinkedin className='icon-item'/></a>
        <a className='icon' href="mailto:emirtetik.41@hotmail.com"><MdAttachEmail className='icon-item' /></a>
        </div>
      </div>
    </div>

     
        <section id={Detailscss.Details}>

     <div className={Detailscss.container_detail}>
                   
        <h1 >{userData?.header}</h1>
        <p>{userData?.text}</p>
        <p> {userData?.listext1}</p>
        <Image  priority={true}   width={800} height={300} src={userData.img} alt="avatar" className={Detailscss.image} />
           
 
        <p>{userData?.text1}</p>
        <p>{userData?.text2}</p>
        <h5>{userData?.soru}</h5>
        <p>{userData?.text3}</p>



        <h5>{userData?.soru1}</h5>
        <p>{userData?.text4}</p>
        <p>{userData?.text4_5}</p>

        

        <p>{userData?.text5}</p>

 

        <p>{userData?.text6}</p>
        <h5>{userData?.soru2}</h5>

        <p>{userData?.text6_5}</p>



        <p>{userData?.text7}</p>
        <h2 className={Detailscss.h2}>{userData?.sonuc}</h2>
        <p>{userData?.text8}</p> 
        <p className={Detailscss.not}><strong>Fotoğraflar için üzgünüm yakın zamanda görseller ve live seçeneği ile blog sayfam zenginleşicektir.</strong></p>
        </div>

        </section>
        
        </div>

<Footer/>
</Layout>
    )
  }

  export default Details

export const getStaticPaths = async () =>{
  const res = await fetch(`http://localhost:3000/api/blogs`);
  const blogs = await res.json();
  const ids = blogs.map((blog) => blog.id);
  const paths = ids.map((id)=> ({params:{id: id.toString()}}));
  return{
    paths,
    fallback:false,
  };
};

export const getStaticProps = async (context) =>{
  const res = await fetch(`http://localhost:3000/api/blogs/${context.params.id}`);
  const userData = await res.json();

  return{
    props:{
      data,
      userData,
    }
  }
}

enter image description here在构建我的nextjs项目时,我在控制台中遇到这样的错误.我不明白为什么.尽管做了大量研究,我还是没能得出结论.更确切地说,我甚至不知道如何调查,我的问题是什么?

enter image description here

enter image description here

推荐答案

因为您没有从任何Api获取任何东西,所以您不需要远程获取任何东西.这就是您收到ECONNREFUSED错误的原因.

更新

我在您的/blog/*文件夹中发现了两个错误:

  • /blog/[id].js第106行加- 1(见下文)
  • 删除第131行和第132行,共/blog/index.js

/blog/[id].js

import { data } from "../../data.js";

const Details = ({ userData }) => {
  return <Layout>{/* ... */}</Layout>;
};

export default Details;

export const getStaticPaths = async () => {
  const ids = data.map(({ id }) => id);
  const paths = ids.map((id) => ({ params: { id: id.toString() } }));
  return {
    paths,
    fallback: false,
  };
};

export const getStaticProps = async (context) => {
  // You where trying here to get posts by id:
  // 1, 2, 3, 4
  // But what you really want is to get array indexes:
  // 0, 1, 2, 3
  // that's why we are adding - 1
  const userData = data[context.params.id - 1]; // <----- add - 1

  return {
    props: {
      data,
      userData,
    },
  };
};

/blog/index.js

export const getStaticProps = async (context) => {
  // ----- remove the fetch -----

  return {
    props: {
      data,
    },
  };
};

Node.js相关问答推荐

MongoDB-如何验证Document字段以仅允许特定的文件扩展名?

如何使用Node.js、Express和Mongoose创建多个API

如何使用Nextjs路由从下一步/导航在新选项卡中通过";router.ush";打开链接

获取驱动器文件夹的直接子文件夹时出现问题

TS 后端开发:prismagenerate找不到已安装的@tsed/prisma包

即使卷已设置,Docker Nodemon 也不会热重载

在 NodeJS 中使用 post 时出现错误 500TypeError: 无法解构 'req.body' 的属性 'name',因为它未定义

如何从mongoose 对象内嵌套的数组中提取数组元素?

如何在mongoose 聚合中执行全文搜索

在 nodejs 中使用 multer 上传文件返回未定义的 req.file 和空的 req.body

Socket IOFlutter 未连接

Cassandra node.js 驱动程序有替代品吗?

提供静态文件到底是什么意思?

如何将使用 Gulp 的 node 部署到 heroku

Node.js、Cygwin 和 Socket.io 走进一家wine 吧……Node.js 抛出 ENOBUFS,所有人都死了

如何在 Mongoose 模式中设置数组大小限制

使用 Socket.io 将客户端连接到服务器

如何在离线时安装 npm 包?

Node应用程序中相同npm包的两个版本

在 Node 中连接和缩小 JS 文件