动态设置params时如何解决路径问题?

时间:2017-03-07 15:42:33

标签: javascript node.js fs

我有来自客户端的params,我想设置为<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template name="identity" match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()" /> </xsl:copy> </xsl:template> <xsl:template match="parent[not(x)]/y"> <xsl:element name="x">foo</xsl:element> <xsl:call-template name="identity"/> </xsl:template> <xsl:template match="parent[not(y)]/z"> <xsl:if test="not(../x)"> <xsl:element name="x">foo</xsl:element> </xsl:if> <xsl:element name="y">foo</xsl:element> <xsl:call-template name="identity"/> </xsl:template> </xsl:stylesheet> 路径,但是当我调用readFile方法并且返回空数组时它不是设置变量,因为它没有读取目录。我如何纠正路径问题?

如果我这样做,它的确有效

readFile
如果我从用户输入

设置var filesData = {}; console.log('SEARCH ENV PRINTING', searchEnv); if (searchEnv === 'DIT') { ditDirectory.readDirectory(function(files) { filesData.logFiles = files; filesData.searchEnv = searchEnv; asyncFiles(filesData); }); } else if (searchEnv === 'St') { stDirectory.readDirectory(function(files) { filesData.logFiles = files; filesData.searchEnv = searchEnv; asyncFiles(filesData); }); } fs.readFile('logs/dit/'+ logfile.filename, 'utf8', function (err, data) { console.log('inside readFile', data); if (err) { return done(err); } }); ,则

不起作用

filesData.searchEnv

1 个答案:

答案 0 :(得分:1)

如果你真的按照你描述的顺序打电话,filesData.searchEnv在你拨打fs.readFile时什么也不会包含任何内容,因为你只在readDirectory的异步回调中为其分配值。

因此,您必须将文件读取调用放入回调中或使用promise等待有效数据。