标签: mean-stack

如何在客户端和服务器之间共享Javascript业务规则?

我正在创建一个 MEAN 堆栈,我想澄清以下内容。

从编码标准的角度来看,我知道验证应该在客户端和服务器端执行。我想要实现的是执行完全相同的验证代码,这样我就不会再次重复该代码。这更像是客户端和服务器端的共享代码。

那么如何让 Angular js 和 Express js 调用相同的 .js 文件来执行验证呢?有可能吗?

谢谢!

node.js express angularjs mean-stack

4
推荐指数
1
解决办法
839
查看次数

如何在nodemailer中将PDF附加到电子邮件?

我想通过nodemailer将pdf报告附加到邮件给用户。我在前端使用jquery。

<script>
$(document).ready(function () {
    var from, to, subject, text;
    $("#send_email").click(function () {
        to = $("#to").val();
        subject = $("#subject").val();
        text = $("#content").val();
        $("#message").text("Sending E-mail...");
        $.get("http://localhost:8080/send", {to: to, subject: subject, text: text}, function (data) {
            if (data == "sent") {
                $("#message").empty().html("Email is sent " + to + " .");
            }
        });
    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

API 看起来像这样。而且效果很好。我想知道如何动态添加附件

app.get('/send', function (req, res) {
    var mailOptions = {
        to: req.query.to,
        subject: req.query.subject,
        text: req.query.text
    };
    console.log(mailOptions);
    smtpTransport.sendMail(mailOptions, function (error, response) {
        if (error) { …
Run Code Online (Sandbox Code Playgroud)

pdf jquery node.js nodemailer mean-stack

4
推荐指数
1
解决办法
9312
查看次数

为水平布局中的所有卡片设置相同的高度

我有一个水平布局,其中有 3 张 md 卡。每张卡片都有不同的内容。问题是,根据每张卡片中的内容量,卡片的高度会发生变化。

我想做的是使最后两张卡与第一张卡(有很多内容)的高度相同。

我已经尝试按照另一篇文章中的建议将它们设置为layout =“column”和flex,但它对我不起作用。

我该如何修复它?

代码笔: http: //codepen.io/anon/pen/YNJYrp

HTML:

<!DOCTYPE html>
<html ng-app="myapp" xmlns:width="http://www.w3.org/1999/xhtml">
<head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css'/>
</head>


<body layout="column">
<!-- ANGULAR MATERIAL DEPENDENCIES -->
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.1/angular-material.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.1/angular-material.min.js"></script>


<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">

<!-- ANGULAR MATERIAL DEPENDENCIES END-->


<md-content>
<div ng-controller="StudentRegisterationController">

    <md-content class="title-margin-top">
        <div layout="row" layout-align="center center">

            <md-card id="mainCard" flex="45">
                <div layout="row" layout-align="center center" flex="100">
                    <img class="profile_image" src="/images/ic_account_image_placeholder.svg" aria-label="android ">
                </div>
                <div layout="row" layout-align="center …
Run Code Online (Sandbox Code Playgroud)

javascript node.js angularjs mean-stack angular-material

4
推荐指数
1
解决办法
1万
查看次数

Node Express Mongoose:编写 API 通过多个可选参数搜索数据

我有一个搜索输入框,用户应该能够通过员工 ID 或名字或姓氏进行搜索。员工 ID 也是一个字符串。我有名为 profile 的 mongo 模型,其中包含员工信息。

我正在使用 Node Express 和 mongoose。我想要一个接收 id 或名字或姓氏作为请求参数的路由器,如下所示。

     this.router.get('/name/:name', this.getMidSearchResults);

private getMidSearchResults(req: Request, res: Response, next: NextFunction)         {
   var nameRegex = {"$regex": new RegExp('^' + req.params.name.toLowerCase(),  'i')};

   Profile.find({ mid: nameRegex } || {firstName: nameRegex} || {lastName: nameRegex}, function(err,   data) {
        if (err) throw err;
        res.send(data);
    });
  }
Run Code Online (Sandbox Code Playgroud)

regex mongoose node.js express mean-stack

4
推荐指数
1
解决办法
1354
查看次数

MEAN 在源文件更改时自动编译

我正在尝试“运行并自动编译”一个平均服务器 Angular4 。我使用以下命令启动服务器:

ng build && node server.js
Run Code Online (Sandbox Code Playgroud)

可以正确启动 Express 服务器,但是!每次我对源文件进行更改时,它都不会像此命令那样自动编译(仅限 Angular2)

ng serve
Run Code Online (Sandbox Code Playgroud)

嗯,我知道 ng 只提供编译和启动 Angular2 服务器的功能,但它也会删除 dist 文件夹!

我在我的服务器上遵循了本教程: https ://scotch.io/tutorials/mean-app-with-angular-2-and-the-angular-cli

谢谢你!

安德里亚

node.js mean-stack angular

4
推荐指数
1
解决办法
521
查看次数

错误:传入的参数必须是 12 个字节的单个字符串或 24 个十六进制字符的字符串

此错误是根据定义的路由/函数的顺序发生的,我还搜索了此错误发生的不同原因,但没有遇到此特定原因

//Save Task

    router.get("/tasks/newrec",function(req,res,next){
        var newtask={
            title:"newtask5",
            isdone:"true"
        }

        db.tasks.save(newtask,function(error,result){
            if(error){res.send(error); }
            else
            { res.send("success"); }//res.json(result);}
        });    

    });
Run Code Online (Sandbox Code Playgroud)

如果我首先声明这个函数,那么如果我声明为第二个或第三个函数,那么我看不到错误,然后我看到这个错误。我正在使用 node 和 mongojs。

var express=require('express');
var router=express.Router();
var mongojs= require('mongojs');
var db=mongojs('taskdb',['tasks']);


//display all tasks
router.get('/tasks',function(req,res,next){

    db.tasks.find(function(err,tasks){
           res.json(tasks);
    });

});

//To find single record with id
router.get('/tasks/:id',function(req,res,next){
    var uid = req.params.id.toString();
    db.tasks.findOne({_id:mongojs.ObjectId(uid)},function(err,doc){
       res.json(doc);
    });
});


//Save Task

router.get("/tasks/newrec",function(req,res,next){
    var newtask={
        title:"newtask5",
        isdone:"true"
    }

    db.tasks.save(newtask,function(error,result){
        if(error){res.send(error); }
        else
        { res.send("success"); }//res.json(result);}
    });    

});
Run Code Online (Sandbox Code Playgroud)

node.js express mongojs mean-stack

4
推荐指数
1
解决办法
5922
查看次数

为什么在 Angular 中使用 Gulp

我正在申请一份工作,并被要求使用 MEAN Stack 和 Angular 2+ 开发一个小型 Web 应用程序。一切正常,除了我被要求也使用 Gulp/Grunt。

我做了一些挖掘,我发现它们是任务运行器,它们主要用于 AngularJS 和其他 JS 技术,但我没有找到太多关于 Angular 2+ 的信息。

所以,我的问题是为什么我应该在 MEAN 堆栈网络应用程序中使用它,为什么使用它会使我的网络应用程序更好?Webpack 不是已经在做类似的事情了吗?

gruntjs mean-stack gulp webpack angular

4
推荐指数
1
解决办法
5122
查看次数

如何从远程 API 服务填充材料选择下拉列表?

我正在尝试使用来自远程 API 服务的值填充材料选择下拉列表。我一直在组件上得到一个空值或未定义的值。

这是使用 MEAN 堆栈和 Angular Material 的 Angular 7。我试过 compareWith 函数并记录值。我注意到该组件总是首先加载其值为空的值,然后是具有值的 API 服务。

<mat-form-field>
    <mat-select formControlName="company"  placeholder="Select 
Company" [(value)]="selectedCompany" [compareWith]="compareFn">
        <mat-option *ngFor="let lC of loadedCompanies" 
 [value]="lC.id">
          {{lC.name}}
        </mat-option>
    </mat-select>
</mat-form-field>

ngOnInit() {
  this.authStatusSub = this.authService
  .getAuthStatusListener()
  .subscribe(authStatus => {
      this.isLoading = false;
  });

  this.form = new FormGroup({
      id: new FormControl(null),
      company: new FormControl(this.loadedCompanies)
  });

  this.companyService.getCompanyList();
  this.companySub = this.companyService
  .getcompanyUpdateListener()
  .subscribe((companyData: {companies: Company[]}) => {
    this.isLoading = false;
    this.loadedCompanies =  companyData.companies;
  });
}

compareFn(c1: Company, c2: Company): boolean { …
Run Code Online (Sandbox Code Playgroud)

mean-stack angular-material angular angular7

4
推荐指数
1
解决办法
3464
查看次数

静态和非静态资源有什么区别?

我主要是一名前端开发人员/设计师,但最近,我一直在探索端到端的解决方案.昨天我使用平均堆栈完成了一个TODO应用程序,并希望开始探索我的VPS的部署选项.

话虽这么说,我被建议使用nginx作为反向代理用于提供静态资源?不幸的是,我陷入了简单的问题.

什么是静态资源示例?

什么因素定义静态资源?

什么是非静态资源的例子?

最后,我应该注意哪些奇怪的边缘情况?

对于这个问题的noobness抱歉.

javascript reverse-proxy nginx single-page-application mean-stack

3
推荐指数
2
解决办法
3746
查看次数

TypeError:Object [object Object],[object Object]没有找到方法

我在一本名为"Sitepoint Full Stack Javascript with MEAN"的书中遵循了一个教程,我刚刚完成了第6章,并且应该创建一个带有"数据库"的"服务器".数据库只不过是一个JSON文档.然而,即使(我可以看到),我的代码是他的直接副本,当我尝试运行它时,我得到标题中提到的错误.这var result = data.find(function(item) {...是导致此问题的原因(位于employees.js中,位于第16行).我看不出还能做什么,希望人们能找到解决问题的方法.

我有几个不同的文件,我用它.

Index.js:

var http = require('http');
var employeeService = require('./lib/employees');
var responder = require('./lib/responseGenerator');
var staticFile = responder.staticFile('/public');

http.createServer(function(req,res) {
    // a parsed url to work with in case there are parameters
    var _url;

    //In case the client uses lower case for methods
    req.method = req.method.toUpperCase();
    console.log(req.method + ' ' + req.url);

    if (req.method !== 'GET') {
        res.writeHead(501, {
            'Content-Type': 'text/plain'
        });
        return res.end(req.method + ' is not …
Run Code Online (Sandbox Code Playgroud)

javascript json node.js mean-stack

3
推荐指数
1
解决办法
1992
查看次数