我创建了一个sails服务来加载javascript文件,这取决于它的控制器名称(或页面和/或是否有会话)。
我将这个(数组)JS文件传递到res.local.JS中,并在我的layout.ejs中循环它,将JS文件包含到我的html中。
for (i = 0; i < loadJS.length; i++) {
<script src="<%- loadJS[i] %>.js"></script>
}
问题,在将JS文件包含在我的html中之前,我如何检查它是否存在?
在PHP中,我们有一个名为file_exists的函数,sails.js有类似的函数吗?
是。由于Sails是使用Node.js创建的,因此您可以使用fs.exists.
如果找不到该文件,这将从数组中删除该文件。你可以将它加载到你的视图中,就像你以前一样。
fs = require('fs');
for (i = 0; i < loadJS.length; i++) {
fs.exists(loadJS[i], function(exists){
if(!exists){
//remove from array
loadJS.splice(i, 1);
}
});
}