我是MEAN的新手,想寻求你的帮助。
由于我在服务器端使用Mongoose并且拥有大量模式,因此我想在表单输入中重用Angular2浏览器端的模式。由于Mongoose现在是同构的,我认为它应该是可行的。如果可能的话,我想在客户端使用Mongoose / Angular2进行架构,文档和验证。我不会从浏览器连接到数据库。
问题1:如何在broswer方面使用Mongoose?我浏览了一下,并且正在考虑这种可能无法纠正的方法。
当我做了'时,我收到了这些错误。
问题2:如何在下面解决这些错误?我还尝试了npm install --save events,npm install --save stream和typings。
[默认]中的错误D:\ MEAN \ projects \ fhir \ fhirapp \ node_modules \ mongodb \ index.d.ts:4:29 无法找到模块'事件'
[默认]中的错误D:\ MEAN \ projects \ fhir \ fhirapp \ node_modules \ mongodb \ index.d.ts:102:18 找不到名称'缓冲区'。
[默认]中的错误D:\ MEAN \ projects \ fhir \ fhirapp \ node_modules \ mongodb \ index.d.ts:1127:44 无法找到名称空间' NodeJS'。
[默认]中的错误D:\ MEAN \ projects \ fhir \ fhirapp \ node_modules \ mongoose \ index.d.ts:6:26 无法找到模块' stream'。
[默认]中的错误D:\ MEAN \ projects \ fhir \ fhirapp \ node_modules \ mongoose \ index.d.ts:13:29 找不到名称' global'。
我的typings.json
{
"globalDependencies": {
"mongodb": "registry:dt/mongodb#2.1.0+20160602142941",
"mongoose": "registry:dt/mongoose#4.5.9+20160922172925",
"mongoose-promise": "registry:dt/mongoose-promise#4.5.4+20160822161941",
"mpromise": "registry:dt/mpromise#0.5.4+20160316155526",
"node": "registry:dt/node#6.0.0+20160923124626"
}
}
您的帮助非常受欢迎。 提前谢谢。
答案 0 :(得分:3)
安装了TypeScript 2.0.3(如果你正在使用Angular 2.0+,你应该使用它),我使用了以下package.json
:
npm install mongoose core-js --save
npm install @types/mongoose @types/core-js @types/node typescript --save-dev
{
"name": "stackoverflow_mongoose",
"version": "1.0.0",
"description": "test",
"main": "index.js",
"license": "ISC",
"dependencies": {
"core-js": "^2.4.1",
"mongoose": "^4.6.1"
},
"devDependencies": {
"@types/core-js": "^0.9.34",
"@types/mongoose": "^4.5.36",
"@types/node": "^6.0.41",
"typescript": "^2.0.3"
}
}
我创建了一个tsconfig.json
文件:
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"noImplicitAny": false,
"sourceMap": false
},
"exclude": [
"node_modules"
]
}
一个示例文件index.ts
:
import * as mongoose from "mongoose";
mongoose.connect("sample");
没有编译错误。你不应该再使用typings
了。相反,您可以使用@types
。