这是我的项目结构:
├── app.html
├── app.js
├── packages/
│ └── accounts-ui-bootstrap-dropdown -> /Users/jon/.meteorite/packages/accounts-ui-bootstrap-dropdown/erobit/meteor-accounts-ui-bootstrap-dropdown/c8b29d2e7f8611d6dec9d6d23c1c2b94e000b0fb/
├── smart.json
└── smart.lock
`meteor list --using'给出以下结果:
standard-app-packages
autopublish
insecure
preserve-inputs
accounts-ui-bootstrap-dropdown
bootstrap
accounts-password
app.html如下:
<head>
<title>app</title>
</head>
<body>
{{> header}}
</body>
<template name="header">
<header class="navbar">
<div class="navbar-inner">
<div class="nav-collapse collapse">
<ul>
<li>{{loginButtons}}</li>
</ul>
</div>
</div>
</header>
</template>
app.js如下:
Accounts.ui.config({ passwordSignupFields: 'USERNAME_AND_OPTIONAL_EMAIL' });
尝试启动应用时出现以下错误:
[[[[[ ~/dev/app ]]]]]
=> Meteor server running on: http://localhost:3000/
W202309-16:30:21.275(-4)? (STDERR) /Users/jon/.meteor/tools/3cba50c44a/lib/node_modules/fibers/future.js:173
W202309-16:30:21.365(-4)? (STDERR) throw(ex);
W202309-16:30:21.365(-4)? (STDERR) ^
W202309-16:30:21.366(-4)? (STDERR) TypeError: Cannot call method 'config' of undefined
W202309-16:30:21.366(-4)? (STDERR) at app/app.js:1:48
W202309-16:30:21.366(-4)? (STDERR) at app/app.js:24:3
W202309-16:30:21.367(-4)? (STDERR) at mains (/Users/jon/dev/app/.meteor/local/build/programs/server/boot.js:153:10)
W202309-16:30:21.367(-4)? (STDERR) at Array.forEach (native)
W202309-16:30:21.367(-4)? (STDERR) at Function._.each._.forEach (/Users/jon/.meteor/tools/3cba50c44a/lib/node_modules/underscore/underscore.js:79:11)
W202309-16:30:21.367(-4)? (STDERR) at /Users/jon/dev/app/.meteor/local/build/programs/server/boot.js:80:5
=> Exited with code: 1
我做错了什么?
答案 0 :(得分:1)
Accounts.ui.config仅在客户端上可用(请参阅文档here),因此您需要将其包含在Meteor.isClient中。用这个替换你的app.js应该有效:
if(Meteor.isClient) {
Accounts.ui.config({ passwordSignupFields: 'USERNAME_AND_OPTIONAL_EMAIL' });
}
或者,您可以创建一个名为“client”的文件夹和一个名为“server”的文件夹,Meteor将知道如何在不使用isClient和isServer的情况下处理这些文件夹。
有关详细信息,请参阅文档中的“structuring your app”或“我应该将文件放在何处?”在unofficial faq。
答案 1 :(得分:0)
我收到此错误,因为我没有添加帐户基础和帐户-ui。我刚刚添加了accounts- [service]包。一旦我添加它们,错误消失了,一切都很好。