我正在使用 MEAN.io,并且正在尝试上传 Base64 编码的图像。
客户端,AngularJS:
// Image we're going to send it out
var base64Image = files[i];
var file = {
image: base64Image,
type: type,
filetype: extension,
characterId: character._id
};
var newFile = new MediaSendBase64(file);
newFile.$save(function(image) {
if ( !image ) {
console.log('ERROR IMAGE');
}
else {
console.log('SUCCESS.');
console.log(image);
}
});
Run Code Online (Sandbox Code Playgroud)
服务器端、NodeJS、控制器:
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
exports.uploadBase64 = function(req, res, next) {
var uploadPath = path.normalize(process.cwd() + '/packages/characters/public/assets/uploads/'),
data = new Buffer(''),
imgURL = undefined, // public URL …Run Code Online (Sandbox Code Playgroud) 我在 Mongoose 中使用 Node.js 和 MongoDB。我正在通过 Node.js 连接到 Mongoose,
db = mongoose.connect('mongodb://localhost/my_database_name')
Run Code Online (Sandbox Code Playgroud)
如何在 node.js 中配置一次以在集合上创建索引?
我的应用程序的目录结构基于本教程:
HTML views/
Angular.js public/javascript/
Express.js routes/
Node.js app.js
Mongoose js models/, set up in app.js
Mongo db set up in app.js
Run Code Online (Sandbox Code Playgroud)
指导我如何在 Node.js 的 MongoDB 集合上提供索引。
我已经编辑了在 Google Cloud Platform App Engine 上运行的实例之一的启动脚本变量。我希望它调用一个永久脚本来确保我的节点应用程序正在运行。所以我补充道:
cd /opt/bitnami/apps/myapp
forever start --workingDir /opt/bitnami/apps/myapp/ --sourceDir /opt
/bitnami/apps/myapp/ app.js
Run Code Online (Sandbox Code Playgroud)
在 #!/bin/bash 行之后(也尝试过不使用 cd,因为根据我的命令,这并不是真正必要的)。但是,一旦虚拟机启动,运行永久列表不会将我的永久任务列为已启动。如果我将该永久命令复制并粘贴到 gcloud 终端并运行,该任务显示正常,并且我的应用程序启动没有问题。
我在 bash 脚本中是否没有正确调用它?
我刚刚在我的 DigitalOcean 服务器上设置了 MEAN 堆栈。我让测试应用程序运行良好,但是现在当我从 DigitalOcean 打开命令行时,它只显示信息:GET /modules/etc... 而我输入的部分是空白的。如何停止服务器并将其恢复到原来的位置,以便我可以访问文件夹等?
简单地执行 CTRL+C 并不会阻止服务器运行,这正是我需要做的。
我正在尝试将 pdf 和/或 word 文档从一个文件夹复制到另一个文件夹中。下面的代码有时有效,但有时则无效。
app.post('/api/file_archive/:file_name', function (req, res) {
var file_name = req.params.file_name;
var src = 'public/uploads/files/' + file_name;
var dest = 'archived_files/files';
if(file_name != "") {
console.log("Entered fs access");
fs.access(dest, function(err) {
if(err)
fs.mkdirSync(dest);
copyFile(src, path.join(dest, file_name));
res.json({ message: 'file archived!'});
});
};
});
Run Code Online (Sandbox Code Playgroud)
我目前收到此错误:
{ Error: ENOENT: no such file or directory, open 'C:\Users\duquetr\Documents\maize-and-blue-brief\public\uploads\files\1495121011192_Letter of Rec for RJ.pdf' at Error (native) errno: -4058, code: 'ENOENT', syscall: 'open', path: 'C:\\Users\\duquetr\\Documents\\maize-and-blue-brief\\public\\uploads\\files\\1495121011192_Letter of Rec for RJ.pdf' }
Run Code Online (Sandbox Code Playgroud)
我搜索了一下,似乎找不到任何与此代码有时有效的原因相关的内容。 …
我如何使用 Mongoose 获取第二天到最新或前一天的文档集合?
我获取最新数据的代码如下:
data.findOne()
.sort({"_id": -1})
.exec(function(err, data) {
if (err) {
console.log('Error getting data..');
}
if (data) {
res.json(data);
}
else {
console.log('No data found!');
}
});
Run Code Online (Sandbox Code Playgroud)
这仅返回集合中最新的文档。相反,我需要最新的之前的一个,所以前一天的一个,我该如何做到这一点?
我正在MEAN中创建 CRUD 操作,我已创建 dataScehema.js文件来定义模型
var mongoose = require('mongoose');
var countrySchema = mongoose.Schema({
name: { type: number },
country: { type: number }
});
module.exports = mongoose.model('country', countrySchema);
Run Code Online (Sandbox Code Playgroud)
并在我的index.js中定义node js服务器代码
var http = require('http');
var express = require('express');
var port = process.env.PORT || 8080;
var app = express();
var appRoutes = require('./routes/appRoute');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var model = require('./model/dataSchema');
mongoose.connect('mongodb://localhost/meanDb')
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use('/',appRoutes);
http.createServer(app).listen(port);
console.log('Backend is running on port:',port); …Run Code Online (Sandbox Code Playgroud) const EventEmitter = require('event');
const emitter = new EventEmitter();
Run Code Online (Sandbox Code Playgroud)
//注册一个监听器
emitter.on('messageLogged', function() {
console.log("listen is called ");
});
Run Code Online (Sandbox Code Playgroud)
// 引发一个事件
emitter.emit('messageLogged');
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的 nodeJS 项目中连接到 mongodb 服务器。我有一个 db 配置文件作为 DB.js
module.exports = {
DB: 'mongodb+srv://user%40gmail.com:%24ugar@cluster-jfgsm.mongodb.net/test?retryWrites=true'
};
Run Code Online (Sandbox Code Playgroud)
用户名包含 @ (%40) 标记,因为它是电子邮件 ID,密码包含 $(%24) 个字符。
我已经在我的 server.js 文件中将它连接为
mongoose = require('mongoose'),
config = require('./config/DB');
const app = express();
mongoose.Promise = global.Promise;
mongoose.connect(config.DB, { useNewUrlParser: true } ).then(
() => {console.log('Database is connected') },
err => { console.log('Can not connect to the database'+ err)}
);
Run Code Online (Sandbox Code Playgroud)
我serve在 package.json 文件中添加了自定义选项来运行 nodemon。
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": …Run Code Online (Sandbox Code Playgroud) 我有一个需要在 CPanel 上托管的 MEAN Stack 应用程序,但我以前从未部署过应用程序。通过使用以下命令在 dist 文件夹中创建一个包,可以轻松部署应用程序的 Angular 部分:
ng build --prod
Run Code Online (Sandbox Code Playgroud)
但我想知道我应该如何在服务器上发布我的后端代码。是否有任何命令/命令可以像 Angular 一样创建一个缩小的包?
我还想知道我是否需要安装一些 npm 包来确保我的应用程序在服务器上顺利运行?就像我在谷歌上搜索有关部署 nodejs 时一直在阅读有关 PM2 和 Nginx 的内容一样。那么它们有什么好处呢?
请提及任何可能有用的文章或视频。
角度版本 7
节点版本 8.11.3
Ubuntu 16.04
mean-stack ×10
node.js ×10
express ×3
javascript ×3
mongodb ×3
mongoose ×2
angular ×1
angularjs ×1
bash ×1
file-upload ×1
forever ×1
meanjs ×1
ubuntu ×1