使用mongorestore命令和dump.gz导入数据库备份时出现错误
使用以下命令恢复数据库:
mongorestore --gzip --archive=dump.gz --nsInclude=MyApp
Run Code Online (Sandbox Code Playgroud)
出现以下错误:
2019-12-04T14:14:40.352+0530 Failed: EOF
2019-12-04T14:14:40.352+0530 0 document(s) restored successfully. 0 document(s) failed to restore.
Run Code Online (Sandbox Code Playgroud)
这个命令有什么问题吗?
我正在编写一个Web应用程序,其中更多用户可以在mongodb中的同一文档中同时执行操作.我使用mean.io堆栈,但我对它很新.我想知道mongoose如何管理并发.每次"用户点击"操作首先执行读取以获取文档,并在执行某些计算后执行保存.当然,序列read-calculate-save不是原子的.mongoose是否使用'last change wins'策略,还是会引发版本控制错误?在这种情况下使用队列是否有意义?
谢谢,最好的问候.
我试图在arch linux mini计算机(cubox)上安装mean.io堆栈.所以我安装了nodejs和mongodb软件包.
我用Git检索堆栈,进行了npm安装(没关系)但是接着:
输入'grunt'后我收到此错误:
[nodemon] v1.2.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node --debug server.js`
debugger listening on port 5858
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
fs.js:439
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT, no such file or directory '/projects/mean/bower_components/jquery/dist/jquery.min.map'
at Object.fs.openSync (fs.js:439:18)
at Object.fs.readFileSync (fs.js:290:15)
at module.exports (/projects/mean/node_modules/meanio/lib/bootstrap.js:31:27)
at /projects/mean/node_modules/meanio/lib/mean.js:20:27
at Config.onPackageRead (/projects/mean/node_modules/meanio/lib/config.js:101:25)
at Promise.<anonymous> (/projects/mean/node_modules/mongoose/node_modules/mpromise/lib/promise.js:177:8)
at …Run Code Online (Sandbox Code Playgroud) 我已经使用基本模板设置了MEAN.IO应用程序,并尝试添加Windows Live和Yahoo passport身份验证依赖项.
我有npm安装了两个依赖项并设置代码(见下文),就像其他护照方案,如Facebook和谷歌(已预先安装并正在运行).
passport.js:
YahooStrategy = require('passport-yahoo-oauth').Strategy,
WindowsLiveStrategy = require('passport-windowslive').Strategy,
GoogleStrategy = require('passport-google-oauth').OAuth2Strategy,
Run Code Online (Sandbox Code Playgroud)
// Use windows live strategy
passport.use(new WindowsLiveStrategy({
clientID: config.strategies.windowslive.clientID,
clientSecret: config.strategies.windowslive.clientSecret,
callbackURL: config.strategies.windowslive.callbackURL
},
function(accessToken, refreshToken, profile, done) {
User.findOne({
'windowslive.id': profile.id
}, function(err, user) {
if (user) {
return done(err, user);
}
user = new User({
name: profile.displayName,
email: profile.emails[0].value,
username: profile.emails[0].value,
provider: 'windowslive',
windowslive: profile._json,
roles: ['authenticated']
});
user.save(function(err) {
if (err) {
console.log(err);
return done(null, false, {message: 'Windows Live login failed, email already …Run Code Online (Sandbox Code Playgroud) 我npm start用来启动我的MEAN堆栈应用程序,但我想使用node-inspector来调试一些Mongoose.我知道我可以开始与节点检查node-inspector,但我能替代node --debug app.js与使npm start工作在我的情况?
这是我的MEAN堆栈目录结构:
HTML views/
Angular.js public/javascript/
Express.js routes/
Node.js app.js
Mongoose js models/, connected in app.js
Mongo db connected in app.js
Run Code Online (Sandbox Code Playgroud)
有关更多信息,这是我的相关问题.
我正在Heroku上部署一个基于MEAN堆栈的站点.在解决问题时,我从我的.gitignore文件中删除了node_modules /,因为我的应用程序一直在"构建失败"错误.
我将node_modules /读入文件,但似乎损坏已经完成,因为构建仍然失败.
日志中建议的一个可能的问题是:" - node_modules已检入源代码管理"
如何撤消我所做的事情呢?
-----> Deleting 1 files matching .slugignore patterns.
-----> Using set buildpack heroku/nodejs
-----> Node.js app detected
-----> Creating runtime environment
NPM_CONFIG_LOGLEVEL=error
NPM_CONFIG_PRODUCTION=true
NODE_ENV=production
NODE_MODULES_CACHE=true
-----> Installing binaries
engines.node (package.json): 0.10.x
engines.npm (package.json): 2.x.x
Resolving node version 0.10.x via semver.io...
Downloading and installing node 0.10.41...
Resolving npm version 2.x.x via semver.io...
Downloading and installing npm 2.14.15 (replacing version 1.4.29)...
npm WARN deprecated This version of npm lacks support for important features, …Run Code Online (Sandbox Code Playgroud) 我是android编程新手并考虑构建我的第一个应用程序.在进行一些主要的设计研究时,了解了应用程序构建的流行MEAN堆栈.但是,android开发者网站,尤其是这个URL:http: //developer.android.com/tools/workflow/index.html 没有提到任何与MEAN堆栈相关的内容.
我应该采取什么方法?
我有一个包含编辑按钮的表来更新记录.当我路过一个id到ng-href其工作正常开放表单页面:
例如:在我的index.html桌子上
<a class="btn btn-warning" ng-href="#/provider/{{row._id}}">Edit</a>
Run Code Online (Sandbox Code Playgroud)
但我想再传递一个参数和row._idng-href,如:
<a class="btn btn-warning" ng-href="#/provider/{{row._id}}/collectionName/{{collectionName}}">Edit</a>
Run Code Online (Sandbox Code Playgroud)
它无法正常工作并重定向到主页.
这是我的控制器:
$timeout(function () {
if ($routeParams.id !== undefined) {
$http.get('/providerlist/'+$routeParams.id, {
params:{
id:$routeParams.id,
collectionName:$routeParams.collectionName
}
}).success(function (response) {
alert(response);
$scope.providerList = response;
$scope.id = response['_id'];
});
}
});
Run Code Online (Sandbox Code Playgroud)
app.js 用于路由:
var ProviderApp = angular.module('ProviderApp', ['ngRoute'])
.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/home', {
templateUrl: 'templates/home/index.html',
controller: 'HomeController',
controllerAs: 'home'
})
.when('/provider', {
templateUrl: 'templates/provider/index.html',
controller: 'ProviderController',
controllerAs: 'provider'
})
.when('/provider/:id', { …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个平均身份验证应用程序.现在我可以通过postman在mongodb中创建用户,但是当我尝试对其进行身份验证时,如果它有错误的用户名或密码,则会提供正确的反馈,错误的密码等,但如果它与数据库上的正确用户名和密码匹配,服务器关闭,则不会给出关于邮递员的任何反馈,它在服务器终端上给出以下错误:
(node:11262) DeprecationWarning: Mongoose: mpromise (mongoose's
default promise library) is deprecated, plug in your own promise
library instead: http://mongoosejs.com/docs/promises.html
/home/cagdas/Desktop/basictest/node_modules/jsonwebtoken/sign.js:90
throw err;
^
Error: Expected object
at validate
(/home/cagdas/Desktop/basictest/node_modules/jsonwebtoken
/sign.js:35:11) at Object.module.exports [as sign]
(/home/cagdas/Desktop/basictest/node_modules/jsonwebtoken
/sign.js:101:7) at User.comparePassword
(/home/cagdas/Desktop/basictest/routes/users.js:40:26)
at bcrypt.compare (/home/cagdas/Desktop/basictest/models/user.js:52:6)
at
/home/cagdas/Desktop/basictest/node_modules/bcryptjs/dist
/bcrypt.js:297:21
at /home/cagdas/Desktop/basictest/node_modules
/bcryptjs/dist/bcrypt.js:1353:21
at Immediate.next (/home/cagdas/Desktop/basictest/node_modules
/bcryptjs/dist/bcrypt.js:1233:21)
at runCallback (timers.js:672:20)
at tryOnImmediate (timers.js:645:5)
at processImmediate [as _immediateCallback] (timers.js:617:5)
Run Code Online (Sandbox Code Playgroud)
这是我的代码:app.js:
const express = require('express') ;
const path = require('path');
const bodyParser = require('body-parser');
const cors = …Run Code Online (Sandbox Code Playgroud) 我正在使用API构建应用程序,到目前为止,所有http请求(get,post)都工作正常。现在,我向我的服务中添加了一个put请求,由于某种原因,它不起作用。
这是我所谓的服务功能:
export class ChatStartComponent implements OnInit {
@ViewChild('d1') d1:ElementRef;
socket = io.connect('http://localhost:3000');
constructor(private usersService: UsersService) {
this.currentUser = JSON.parse(localStorage.getItem('currentUser'));
this.currentUserName = this.currentUser.name;
this.usersService.updateUser(this.currentUser._id); <--update Users does not
/*this.usersService.getUsers() <-- getUsers does work
.subscribe(users => {
this.users.push(users);
});*/
}
Run Code Online (Sandbox Code Playgroud)
参数currentUser._id确实存在,我可以在此时控制台对其进行登录。
这是服务功能:
addUser(newUser) {
var headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http.post('http://localhost:3000/api/user', JSON.stringify(newUser), {headers: headers});
}
updateUser(_id: string) {
var set = {
loggedIn: true
};
console.log(set, _id);
return this.http.put('http://localhost:3000/api/update/' + _id, JSON.stringify(set))
.map(res => res.json());
}
Run Code Online (Sandbox Code Playgroud)
上面的http.post调用工作正常,但放置的updateUser根本不工作。console.log被触发了,我确实记录了ID,但http.put调用不起作用。
这是服务器端代码:
router.put('/update/:id', …Run Code Online (Sandbox Code Playgroud) mean-stack ×10
javascript ×4
mongodb ×4
node.js ×4
mongoose ×3
android ×1
angular ×1
angularjs ×1
api ×1
archlinux ×1
bcrypt ×1
heroku ×1
jwt ×1
mongodump ×1
mongorestore ×1
passport.js ×1
put ×1