2014-10-02 29 views
1

我使用的確切CSON從official CSON docs加載有效CSON總是返回[類型錯誤:未定義是不是一個函數]

{ 
    # an array 
    abc: [ 
     'a' 
     'b' 
     'c' 
    ] 

    # an object 
    a: 
     b: 'c' 
} 

加載該文件(保存在test.cson)總是會返回一個錯誤:

#!/usr/bin/env node 

var CSON = require('cson'), 
    log = console.log.bind(console); 

var config = CSON.parseFileSync('test.cson') 
if (Object.prototype.toString.call(config) === '[object Error]') { 
    log('Error loading file', config) 
    process.exit(1) 
} 

log('winning') 

運行這個總是返回:

Error loading file [TypeError: undefined is not a function] 

如何加載CSON文件?

+0

@Sirko Object.prototype.toString.call正在返回''[object Error]',並記錄該錯誤。它來自'parseFileSync'調用。 – 2014-10-02 13:07:50

回答

1

問題是運行一個不穩定(0.11)版本的節點 - 我切換到另一臺機器,在那裏我正在處理需要生成器的東西。在撰寫本文時,CSON在節點0.11上不工作。

2

我複製/粘貼您的確切代碼,它在我的系統中完美運行,並且打印出config顯示我正確的對象。有些東西適合你:

  1. (我認爲這很可能是你的錯誤)確保你已經安裝了CSON庫!在您的腳本的文件夾中,運行:
    npm install cson
  2. 檢查文件test.cson是否存在且可讀。

如果這沒有幫助,您需要更好地瞭解問題所在。
在使用CSON庫之前,請嘗試添加一個console.log(CSON)。在你的「if」之前,然後添加一個console.log(config)。你看到了什麼?

+0

使用'cson @ 1.6.1'。運行console.log(CSON)返回: {parseFile:[Function], parseFileSync:[Function] etc},因此該模塊看起來也正常加載。 test.cson存在並且可讀。 – mikemaccana 2014-10-02 14:02:46

+0

test.cson有哪些權限?另外,您的終端與腳本位於同一文件夾中嗎? – Qualcuno 2014-10-02 15:04:10

+0

test.cson是世界可讀的,test.js與test.cson位於同一文件夾中。奇怪的是,我可以讓它在另一個盒子上工作... – mikemaccana 2014-10-03 10:50:02

相關問題