我正在尝试运行npm install
,这是从控制台输出:
npm ERR! Linux 4.8.0-27-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v6.9.1
npm ERR! npm v3.10.8
npm ERR! Maximum call stack size exceeded
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
Run Code Online (Sandbox Code Playgroud)
这是以下内容npm-debug.log
:
113791 verbose stack RangeError: Maximum call stack size exceeded
113791 verbose stack at Object.color (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/console-control-strings/index.js:115:32)
113791 verbose stack at EventEmitter.log._format (/usr/lib/node_modules/npm/node_modules/npmlog/log.js:252:51)
113791 verbose stack at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/log.js:138:24)
113791 verbose stack at …
Run Code Online (Sandbox Code Playgroud) 我的应用程序需要具有类型的switch case语句String
.
我需要这样的东西:
Object list1 = "list1";
Object list2 = "list2";
Object list3 = "list3";
Object option = "list1";
switch (option) {
case list1: // Do something
case list2: // Do something
case list3: // Do something
default: // Do something
}
Run Code Online (Sandbox Code Playgroud)
有可能吗?
编辑:
是否更适合使用开关盒
n
而不是if
和else
?一起使用?请评论一下?
当我喜欢下面的时候,
GregorianCalendar calendar = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
calendar.setTime(startTime); // startTime Date
DatatypeFactory.newInstance().newXMLGregorianCalendar(calendar);
Run Code Online (Sandbox Code Playgroud)
我得到像输出2015-04-15T11:04:30.000Z
.
我希望它像2015-04-15T11:04:30.000
.
有没有办法实现这个目标?
我正在使用ng-messages
来验证我的注册表单字段,但是我遇到了一个问题,我无法检查用户名是否被占用,直到我将注册请求发送到服务器。目前我有这种类型的代码:
UserPool.signUp(vm.form.username, vm.form.password, attributes)
.then(function (result) {
$state.go('app.pages_auth_confirm', {
user: result.user
});
})
.catch(function () {
$scope.registerForm.username.$invalid = true;
$scope.registerForm.username.$error.usernameAlreadyExists = true;
});
Run Code Online (Sandbox Code Playgroud)
和 HTML:
<input name="username" ng-model="vm.form.username" placeholder="Name" required>
<div ng-messages="registerForm.username.$error" role="alert">
<div ng-message="required">
<span>Username field is required</span>
</div>
<div ng-message="usernameAlreadyExists">
<span>User with this username already exists</span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这有效,但我想知道实现该功能的正确方法。注册表还有许多其他字段,手动更改其中一些字段以显示错误似乎不是一个好主意。我还对 angular 中的验证和消息进行了一些研究,并发现了自定义验证,$asyncValidators
但我也不能使用该功能,因为据我所知,我将需要某种 API 来获取有关已用用户名的信息,但是我没有这种可能性,正如我已经说过的,在我发送注册请求之前,我无法检查用户名是否被占用。所以有人能告诉我我该怎么办吗?使用这种验证的正确方法是什么?
我正在尝试使用Spock 框架来实现单元测试,这就是我的测试的样子:
def setup() {
scrollableResultsMock = Mock(ScrollableResults)
paymentRepositoryMock = Mock(PaymentRepository)
paymentRegistryService = new PaymentRegistryService(paymentRepositoryMock)
}
@Unroll
def 'should correctly process'() {
given:
paymentRepositoryMock.findUnconfirmedTransactions(_ as LocalDate, _ as Days) >> scrollableResultsMock
...
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试注入模拟对象的类:
@Service
open class PaymentRegistryService
@Autowired
constructor(
val paymentRepository: PaymentRepository
) {
@Transactional
open fun parseRegistryFileStream(input: InputStream): LinkedList<Pair<Long, String>> {
...
val registry = paymentRepository.findUnconfirmedTransactions(start, PERIOD)
...
}
}
Run Code Online (Sandbox Code Playgroud)
在运行测试而不是调用我的方法时,paymentRepository
正在调用真正的方法。我不明白可能是什么原因。LocalDate
来自Joda 时间,最后是课程Days
:paymentRepository
@Repository
@Transactional
open class PaymentRepository …
Run Code Online (Sandbox Code Playgroud) java ×3
javascript ×2
angularjs ×1
bigdecimal ×1
double ×1
groovy ×1
ieee-754 ×1
if-statement ×1
kotlin ×1
mocking ×1
ng-messages ×1
node.js ×1
npm ×1
object ×1
spock ×1
unit-testing ×1
validation ×1
xsd ×1