2017-06-01 3 views
1

Ich schreibe App mit reagieren und Knoten lesen, aber mein localhost nicht ausgeführt wird, und ich habe diesen Fehler:Kann nicht Eigenschaft ‚Pfad‘ undefinierter (Node js)

UNHANDLED REJECTION TypeError: Cannot read property 'path' of undefined 

Alle NPM-Module installiert sind, aber Dieser Fehler erlaubt nicht, mein Projekt zu starten. Es ist das erste Mal, wenn ich versuche, Code mit Knoten zu schreiben, also ist vielleicht die Antwort nahe. Mein node.js unter:

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, 
    }) 
    } 
} 
+0

Können Sie mir sagen, in welcher Zeile der Fehler auftritt? –

+0

Es zeigt nicht die Nummer der Zeile genau, aber es zeigt dies: D: \ IT \ Valeria \ Work \ Projekt \ Client-only-Pfade \ node_modules \ bluebird \ js \ release \ async.js: 61 'fn = function() {wirf arg; }; ' –

Antwort

0

Ich denke, Ihr Problem hier ist:

).then(result => { 
    if (result.errors) { 
     console.log(result.errors) 
     reject(result.errors) 
    } 

Sie sind nicht in den frühen wenn Block zurückkehrt, so dass die Funktion fort und versucht, alles nach zu tun.

Stattdessen werfen nur eine Rückkehr in dort:

return reject(result.errors) // Now will not continue

Aber genauer gesagt, gibt es keine Fehlerbehandlung auf Ihrem Versprechen, die, warum Sie die UNHANDLED REJECTION Warnung sehen ist.

+0

Leider hilft es nicht, aber ich habe es behoben. Ich lösche npm Module, starte meinen Computer neu und installiere es erneut :) –

+0

Sorry :(Viel Glück – sparrow

Verwandte Themen