Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法读取属性';路径';未定义的节点(节点js)_Javascript_Node.js_Reactjs_Path - Fatal编程技术网

Javascript 无法读取属性';路径';未定义的节点(节点js)

Javascript 无法读取属性';路径';未定义的节点(节点js),javascript,node.js,reactjs,path,Javascript,Node.js,Reactjs,Path,我使用react和node编写应用程序,但我的本地主机未运行,出现以下错误: UNHANDLED REJECTION TypeError: Cannot read property 'path' of undefined 已安装所有npm模块,但此错误不允许启动我的项目。这是我第一次尝试用node编写代码,所以答案可能很接近。 我的node.js如下: const _ = require("lodash") const Promise = require("bluebird") const p

我使用react和node编写应用程序,但我的本地主机未运行,出现以下错误:

UNHANDLED REJECTION TypeError: Cannot read property 'path' of undefined
已安装所有npm模块,但此错误不允许启动我的项目。这是我第一次尝试用node编写代码,所以答案可能很接近。 我的node.js如下:

const _ = require("lodash")
const Promise = require("bluebird")
const path = require("path")
const select = require(`unist-util-select`)
const fs = require(`fs-extra`)

exports.createPages = ({ graphql, boundActionCreators }) => {
  const { upsertPage } = boundActionCreators

  return new Promise((resolve, reject) => {
    const pages = []
    const blogPost = path.resolve("./src/templates/blog-post.js")
    resolve(
      graphql(
        `
      {
        allMarkdownRemark(limit: 1000) {
          edges {
            node {
              fields {
                slug
              }
            }
          }
        }
      }
    `
      ).then(result => {
        if (result.errors) {
          console.log(result.errors)
          reject(result.errors)
        }

        // Create blog posts pages.
        _.each(result.data.allMarkdownRemark.edges, edge => {
          upsertPage({
            path: edge.node.fields.slug, // required
            component: blogPost,
            context: {
              slug: edge.node.fields.slug,
            },
          })
        })
      })
    )
  })
}

// Add custom slug for blog posts to both File and MarkdownRemark nodes.
exports.onNodeCreate = ({ node, boundActionCreators, getNode }) => {
  const { addFieldToNode } = boundActionCreators
  if (node.internal.type === `File`) {
    const parsedFilePath = path.parse(node.relativePath)
    const slug = `/${parsedFilePath.dir}/`
    addFieldToNode({ node, fieldName: `slug`, fieldValue: slug })
  } else if (node.internal.type === `MarkdownRemark`) {
    const fileNode = getNode(node.parent)
    addFieldToNode({
      node,
      fieldName: `slug`,
      fieldValue: fileNode.fields.slug,
    })
  }
}

我认为你的问题在于:

   ).then(result => {
    if (result.errors) {
      console.log(result.errors)
      reject(result.errors)
    }
您没有在if块中提前返回,因此函数将继续并尝试在之后执行所有操作

取而代之的是,只需在那里投一个回音:

返回拒绝(result.errors)//现在将不会继续


但更具体地说,您的承诺中没有错误处理程序,这就是为什么您会看到
未处理拒绝
警告。

我认为您的问题在于:

   ).then(result => {
    if (result.errors) {
      console.log(result.errors)
      reject(result.errors)
    }
您没有在if块中提前返回,因此函数将继续并尝试在之后执行所有操作

取而代之的是,只需在那里投一个回音:

返回拒绝(result.errors)//现在将不会继续


但更具体地说,您的承诺中没有错误处理程序,这就是为什么您会看到
未处理拒绝
警告。

您能告诉我错误发生在哪一行吗?它没有准确显示行数,但它显示了以下内容:D:\it\Valeria\Work\Project\client-only-path\node\u-modules\bluebird\js\release\async.js:61
fn=function(){throw arg;}你能告诉我发生错误的是哪一行吗?它没有精确地显示行数,但显示如下:D:\It\Valeria\Work\Project\client only path\node\u modules\bluebird\js\release\async.js:61
fn=function(){throw arg;}不幸的是,它没有帮助,但我修复了它。我删除npm模块,重新启动计算机,然后重新安装:)抱歉:(很好,这没有帮助,但我已修复。我删除npm模块,重新启动计算机,然后重新安装:)抱歉:(祝你好运