在__dirname中列出文件

时间:2017-02-18 16:59:16

标签: node.js clojurescript

我正在学习ClojureScript而我正在尝试列出__dirname中的文件,我无法让它工作,我想问题就在于我如何获得__dirname本身。

我让它适用于已定义的文件夹

(ns namespace
  (:require [cljs.nodejs :as node]))

(def fs (node/require "fs"))

(.readdirSync fs "/home/me")

但是当我做的时候

(ns namespace
  (:require [cljs.nodejs :as node]))

(def fs (node/require "fs"))

(.readdirSync fs node/__dirname)

当我cider-eval-last-sexp时,我什么都没得到。 node/__dirname求值为nil,我在编译器输出

中有此值
  

警告:使用未声明的Var cljs.nodejs / __ dirname

所以,有两个问题:

  1. 我知道最终编译的脚本会被放入target /所以我应该考虑基本文件夹,如何在我的代码中指定它?
  2. 我正在使用Spacemacs,我注意到错误发生在 cider-repl CLJS my-project 缓冲区中,如何在源缓冲区中打印它们?
  3. 感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

nodejs/__dirname未定义。从来没有。 that namespace中只有三种定义。

__dirname是每个节点模块的局部变量。因此,如果要访问该变量,则必须执行以下操作:

(prn (.readdirSync fs (js* "__dirname")))