我正在尝试使用 Node 构建演示应用程序,但在尝试使用 Nutrionix NodeJS 客户端库时,我不断收到Uncaught TypeError: fs.readdirSync is not a function 错误 (https://github.com/nutritionix/nodejs-client-library)和浏览器。
我正在学习本教程 http://www.sitepoint.com/getting-started-browserify/直到 Using the Browserify Output 部分,但我没有使用 Underscore 和为 main.js 提供的代码,而是使用了 Nutritionix NodeJS 客户端库和 main.js 中的以下代码:
var NutritionixClient = require('nutritionix');
var nutritionix = new NutritionixClient({
appId: '7c710fbd',
appKey: 'a2f106128aa4b2ab81fd783fca5bf0ee'
// debug: true, // defaults to false
});
我使用 Jade 的 HTML 如下:
doctype html
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
body
block content
script(src='javascripts/nutri.js')
script(src='javascripts/main.js')
我在命令行中使用以下命令通过 Nutritionix 构建一个新的 JavaScript 文件:
browserify public/javascripts/main.js -o public/javascripts/nutri.js
当我在本地运行时,在控制台中,在 nutri.js 的第 465 行,我得到 Uncaught TypeError: fs.readdirSync is not a function,这是 Browserify 生成的文件。该行是以下函数中的第四行:
function readDirp(path, excludeList) {
var lib = {};
var expand = new Expander(path);
var files = fs.readdirSync(path).map(expand);
files.forEach(function(file){
if (excluded(file.name, excludeList) === false) {
lib[file.name.split('.').shift()] = require(file.location);
}
});
return lib;
}
我不确定为什么会不断收到此错误。当我浏览顶部链接的 Browserify 教程时,让 Browserified 文件正常工作没有问题。如果需要我提供更多信息,请告诉我,非常感谢任何帮助。
最佳答案
使用 brfs , https://github.com/browserify/brfs
fs.readFileSync() 和 fs.readFile() 静态 Assets browserify 转换
此模块是 browserify 的一个插件,用于解析 fs.readFileSync() 调用的 AST,以便您可以将文件内容内联到您的包中。
尽管此模块旨在与 browserify 一起使用,但它并没有特别针对 browserify,因此它应该在其他项目中普遍有用。
关于javascript - 将 Browserify 与 Nutritionix NodeJS 客户端库一起使用时,获取未捕获的类型错误 : fs. readdirSync 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34735903/
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
如果我使用ruby版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更
HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候
我已经找到了几个使用datamapper的示例,并且能够让它们正常工作。不过,所有这些示例都是针对sqlite数据库的。我正在尝试将数据映射器与postgresql一起使用。我将datamapper中的调用从sqlite3更改为postgres,并且我已经安装了dm-postgres-adapter。但它仍然不起作用。我还需要做什么? 最佳答案 与SQLite不同,PostgreSQL不将数据库存储在单个文件中。在你拥有createdyourdatabase之后,尝试这样的事情:DataMapper.setup:default,{:
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
如果names为nil,则以下中断。我怎样才能让这个map只有在它不是nil时才执行?self.topics=names.split(",").mapdo|n|Topic.where(name:n.strip).first_or_create!end 最佳答案 其他几个选项:选项1(在其上执行map时检查split的结果):names_list=names.try(:split,",")self.topics=names_list.mapdo|n|Topic.where(name:n.strip).first_or_create!e
我经常将预配置的lambda插入可枚举的方法中,例如“map”、“select”等。但是“注入(inject)”的行为似乎有所不同。例如与mult4=lambda{|item|item*4}然后(5..10).map&mult4给我[20,24,28,32,36,40]但是,如果我制作一个2参数lambda用于像这样的注入(inject),multL=lambda{|product,n|product*n}我想说(5..10).inject(2)&multL因为“inject”有一个可选的单个初始值参数,但这给了我......irb(main):027:0>(5..10).inject
我需要使用ActiveMerchant库在我们的一个Rails应用程序中设置支付解决方案。尽管这个问题非常主观,但人们对主要网关(BrainTree、Authorize.net等)的体验如何?它必须:处理定期付款。有能力记入个人帐户。能够取消付款。有办法存储用户的付款详细信息(例如Authotize.netsCIM)。干杯 最佳答案 ActiveMerchant很棒,但在过去一年左右的时间里,我在使用它时发现了一些问题。首先,虽然某些网关可能会得到“支持”——但并非所有功能都包含在内。查看功能矩阵以确保完全支持您选择的网关-http
什么是测试格式验证的最佳方法让我们说一个用户名,使用字母数字的正则表达式,但不是纯数字?我一直在我的模型中使用以下验证validates:username,:format=>{:with=>/^[a-z0-9]+[-a-z0-9]*[a-z0-9]+$/i}数字用户名(例如“342”)通过了验证,这是我不想要的。 最佳答案 您想“向前看”一封信:/\A(?=.*[a-z])[a-z\d]+\Z/i 关于ruby-on-rails-Rails格式验证——字母数字,但不是纯数字,我们在Sta
我要下载http://foobar.com/song.mp3作为song.mp3,而不是让Chrome在其native中打开它浏览器中的播放器。我怎样才能做到这一点? 最佳答案 您只需要确保发送这些header:Content-Disposition:attachment;filename=song.mp3;Content-Type:application/octet-streamContent-Transfer-Encoding:binarysend_file方法为您完成:get'/:file'do|file|file=File.